4: ES内执行Groovy脚本,做文档部分更新、执行判断改变操作类型
- 前提数据: - 让 num 加 10.
 POST /test_index/test_type/1/_update{"script":"ctx._source.num+=10"}.png) - 把Groovy脚本(含参数)保存在文件中,在sense中给参数赋值,并执行
 保存目录: es根目录 / config / scripts, 创建 set_num.groovy.png) 内容为:把num字段设置为参数传入的值,其中 param_num是脚本的参数,需要在命令中传入: 内容为:把num字段设置为参数传入的值,其中 param_num是脚本的参数,需要在命令中传入:.png) 在sense中,执行:POST /test_index/test_type/1/_update{"script":{"lang":"groovy","file":"set_num","params":{"param_num":181}}} 在sense中,执行:POST /test_index/test_type/1/_update{"script":{"lang":"groovy","file":"set_num","params":{"param_num":181}}}- 用脚本做些其他事情:改变执行的命令
 脚本内容:当传入参数为true时,就执行delete操作;为false时,不做任何操作ctx.op = param_isdelete == true ? "delete" : "none"在sense中执行:POST /test_index/test_type/1/_update{"script":{"lang":"groovy","file":"change_op_type","params":{"param_isdelete":true}}}- ES内置的upsert命令,确保脚本安全的执行(当要更新的文档不存在时)。
 适用场景:假设我们需要 在 Elasticsearch 中存储一个页面访问量计数器。 每当有用户浏览网页,我们对该页面的计数器进行累加。但是,如果它是一个新网页,我们不能确定计数器已经存在。 如果我们尝试更新一个不存在的文档,那么更新操作将会失败。如下:如果指定的文档不存在,那么当执行脚本的时候,会报错.png) 可以使用 upsert命令。当文档不存在,则执行upsert,对文档进行初始化,注意,初始化后不再执行script当文档存在,则执行script 可以使用 upsert命令。当文档不存在,则执行upsert,对文档进行初始化,注意,初始化后不再执行script当文档存在,则执行script4: ES内执行Groovy脚本,做文档部分更新、执行判断改变操作类型的更多相关文章- Java执行groovy脚本的两种方式
		记录Java执行groovy脚本的两种方式,简单粗暴: 一种是通过脚本引擎ScriptEngine提供的eval(String)方法执行脚本内容:一种是执行groovy脚本: 二者都通过Invocab ... 
- 使用 Java 执行 groovy 脚本或方法
		1. 引入依赖 <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groo ... 
- es之对文档进行更新操作
		5.7.1:更新整个文档 ES中并不存在所谓的更新操作,而是用新文档替换旧文档: 在内部,Elasticsearch已经标记旧文档为删除并添加了一个完整的新文档并建立索引.旧版本文档不会立即消失 ,但 ... 
- r0capture安卓应用层通杀脚本-使用文档
		本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! r0capture安卓应用层通杀脚本-使 ... 
- GIT+云盘作 做 文档管理工具
		GIT+云盘作 做 文档管理工具 在工作中, 会遇到公司的文档 和 自己家里的 文档进行同步的问题, 通常我们使用U盘作为传输节制, 但是不是非常好,文档的改动都不能发现, 导致回家同步的时候, 出各 ... 
- 为什么不使用github的wiki而是使用mkdocs做文档管理?
		为什么不使用github的wiki而是使用mkdocs做文档管理? 目前 KSFramework 是使用mkdocs来做在线文档 而非使用github的wiki,这是为什么呢? 在windows下搭建 ... 
- 使用Docsify做文档网站的详细配置教程
		使用Docsify做文档网站的详细配置教程 作者:xhemj 没错,它叫Docsify. xhemj的文档中心就是用这个写的 开源地址:https://github.com/docsifyjs/doc ... 
- 基于Metronic的Bootstrap开发框架经验总结(17)-- 使用 summernote插件实现HTML文档的编辑和图片插入操作
		在很多场合,我们需要在线编辑HTML内容,然后在页面上或者其他终端上(如小程序.APP应用等)显示,编辑HTML内容的插件有很多,本篇介绍基于Bootstrap的 summernote插件实现HTML ... 
- 使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解(新手必学)
		为大家介绍下Python爬虫库BeautifulSoup遍历文档树并对标签进行操作的详细方法与函数下面就是使用Python爬虫库BeautifulSoup对文档树进行遍历并对标签进行操作的实例,都是最 ... 
 随机推荐- maven 私服上有jar包但是却下载不下来
			解决办法: 在parent中执行deploy命令就解决了. 原因:第一次建项目,上传jar包的时候直接进入到该项目中进行deploy到私服.最终发现私服仓库有,但是别人引用的时候无法下载.是因为别人下 ... 
- Spark2.x(五十九):yarn-cluster模式提交Spark任务,如何关闭client进程?
			问题: 最近现场反馈采用yarn-cluster方式提交spark application后,在提交节点机上依然会存在一个yarn的client进程不关闭,又由于spark application都是 ... 
- python练习:寒冰猴子狐狸,猫狗咬架
			python练习:寒冰猴子狐狸,猫狗咬架 一,寒冰猴子狐狸 class Person: def __init__(self, na, gen, age, fig): self.name = na se ... 
- Buffon投针问题
- Docker 安装 MySQL 并实现远程连接
			获取 MySQL 镜像 docker pull mysql:5.6 查看镜像列表 docker images 启动 MySQL 镜像 docker run -itd -P mysql:5.6 bash ... 
- postman做接口测试 application/x-www-form-urlencoded 格式与json格式互转
			背景:用postman做接口测试可以使用application/x-www-form-urlencoded请求,也可以使用json请求,接口文档如下: 请求参数 字段 类型 是否必填 注释 websi ... 
- Spring MVC -- Spring MVC入门
			本篇博客首先介绍Spring MVC的优点,然后介绍Spring MVC的基本组件,包括DispatcherServlet,并学习如何开发一个“传统风格”的控制器,这是在Spring 2.5版本之前开 ... 
- js set集合转数组 Array.from的使用方法
			1.set集合转化Array数组 注意:这个可以使用过滤数组中的重复的元素 你可以先把数组转化为set集合 然后在把这个集合通过Array.from这个方法把集合在转化为数组 var set = n ... 
- 百练1724 ROADS
			总时间限制: 1000ms 内存限制: 65536kB 描述 N cities named with numbers 1 ... N are connected with one-way roa ... 
- php xml转array的方法
			php xml转array的方法 <pre><?php $responseXml='<xml><appid>12</appid></xml& ... 
 
