使用上篇文章创建的索引进行学习:https://www.cnblogs.com/wangymd/p/11200996.html

官方文档:https://www.elastic.co/guide/en/elasticsearch/painless/6.3/painless-examples.html

1、脚本更新指定字段

方式1:

POST test_index/test_type/4/_update
{
  "script":{
    "source":"ctx._source.count = 10"
  }
}

方式2:

POST test_index/test_type/4/_update
{
  "script":{
    "source":"ctx._source.count = params.count",
    "params": {
      "count":20
    }
  }
}

POST test_index/test_type/4/_update

{
  "script" : {
    "source": "ctx._source.count++"  #自增
  }
}

POST test_index/test_type/4/_update
{
  "script" : {
    "source": "ctx._source.count--"  #自减
  }
}

2、数组添加值

索引增加字段

PUT test_index/test_type/_mapping
{
  "properties": {
    "tags" : {
        "type": "text"
    }
  }
}

索引字段设置数组值

POST test_index/test_type/4/_update
{
  "doc": {
    "tags":["aa"]
  }
}

索引字段添加数组值

注意字段无数据时直接添加会发生错误。

POST test_index/test_type/4/_update
{
  "script":{
    "source":"ctx._source.tags.add(params.tags)",
    "params": {
      "tags":"bb"
    }
  }
}

3、添加字段

POST test_index/test_type/4/_update
{
  "script" : "ctx._source.date = '2019-07-25'"  #字段名和字段值
}

4、删除字段

POST test_index/test_type/4/_update
{
  "script" : "ctx._source.remove('date')"
}

5、复杂的脚本

①根据不同条件执行不同的命令

POST test_index/test_type/4/_update
{
  "script" : {
    "source": "if (ctx._source.tags.contains(params.tag)) { ctx.op = 'delete' } else { ctx.op = 'none' }",  #tags包含aa"进行删除",其他误操作
    "lang": "painless",
    "params" : {
      "tag" : "aa"
    }
  }
}

ElasticSearch6.3脚本更新的更多相关文章

  1. Oracle 项目中 SQL 脚本更新方式

    DECLARE hasVersion ); dbVersion ); BEGIN ) INTO hasVersion FROM ELB_SETTINGS E WHERE E.KEY='dbVersio ...

  2. 纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例

    查看完整文章点击原文链接:纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例 你是否还在用postman\jmeter做接口自动化吗?用python的开源框架[unit ...

  3. innobackupex 单脚本循环7天一全备6增备脚本更新

    #!/bin/bash #日期转为天数 function date2days { echo "$*" | awk '{ z=-$)/); y=$+-z; m=$+*z-; j=*m ...

  4. 用Python写的简单脚本更新本地hosts

    这两天Google墙得严重,于是就产生了做个一键更新hosts的脚本的想法. 由于正在学习Python,理所当然用Python来写这个脚本了. 接触比较多的就是urllib2这个库,习惯性的impor ...

  5. 使用Linux脚本更新Weblogic部署的应用程序

    在利用Jenkins实现Weblogic应用自动部署的功能时,如何通过Shell 脚本自动更新Weblogic部署的应用程序呢? 可以使用weblogic.jar包中的weblogic.Deploye ...

  6. DD-WRT自定义脚本更新花生壳DDNS

    N年以前买了一个tp-link 841n v7,一直用的还算可以吧,除了不定期重启路由器,不然网速慢的龟爬啊!这也是TP原厂固件的通病,于是刷了DD-WRT,话说DD确实很爽,除了功能强大之外,而且很 ...

  7. Cocos Code IDE里xcodeprojectlua脚本更新

    lua脚本改动后xcode须要clean又一次编译才干更新,这个是xcode里的老毛病了,网上有一些脚本但不是针对Cocos Code IDE的project文件夹的,这里列出 cocos2dx版本号 ...

  8. Mongo使用脚本更新数据

    SQL Server中我们经常要使用脚本来刷一些数据,在mongo中我们也可以使用mongo的脚本来刷mongo的数据 首先在命令窗口中链接到本地的mongo库 load("[脚本的地址]& ...

  9. jenkins发版脚本更新

    jenkins 项目名中明确了 是jar tar.gz war包研发需要提供  项目名-地点-环境(研发.测试.生产)-应用项目名称(admin)-包格式(jar\war\gz) deployment ...

随机推荐

  1. python 使用xlsxwriter 写入数据时,当数据中链接的后面包含空格时(如:"http://*** "),导出问题打开报错

    python 在使用 xlsxwriter组件写入数据时,当数据包含类似“http://*** /”数据时,导出的excel,打开时会提示如下错误: 没有查到相关的资料处理这个问题,可能原因为exce ...

  2. 26-13 order by排序

    表中数据是集合,集合是没有顺序的.order by返回的数据是有顺序的,故此我们把order by以后返回的数据集合叫“游标”. --------------------------通过order b ...

  3. CentOS7初始化服务器开发环境——根据个人习惯而定

    目录 修改hostname 创建个人账户和组 修改hostname 编辑主机名称,注意:执行以下指令,无需重启服务器,因为此指令实时写入linux 内核 hostnamectl --static se ...

  4. java颜色对照表

  5. JS轮播图带序号小点和左右按钮

    轮播图作为前端比较简易的动画,使用非常频繁,这里记录以便使用 此轮播图为最简易自动播放,非无缝,但有按钮,有序号跳转小点 想看全套轮播图可以查看我的分类轮播图全套 html布局 <div sty ...

  6. PIC16F887的LCD

    RS RA5 RW RA4 RD RA3 将引脚设置为输出的时候要对ANS5 ANS4 ANS3 设置为0

  7. Servlet配置及生命周期

    1.设置Ecilipse快捷  file new 2.创建Servlet程序 1). 创建一个 Servlet 接口的实现类.              public class HelloServl ...

  8. Java和NodeJS解析XML对比

    Java解析XML 1.接收xml文件或者字符串,转为InputStream 2.使用DocumentBuilderFactory对象将InputStream转为document对象 Document ...

  9. Java实现 LeetCode 810 黑板异或游戏 (分析)

    810. 黑板异或游戏 一个黑板上写着一个非负整数数组 nums[i] .小红和小明轮流从黑板上擦掉一个数字,小红先手.如果擦除一个数字后,剩余的所有数字按位异或运算得出的结果等于 0 的话,当前玩家 ...

  10. Java实现 LeetCode 701 二叉搜索树中的插入操作(遍历树)

    701. 二叉搜索树中的插入操作 给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 保证原始二叉搜索树中不存在新值. 注意,可能存在多种有效的插入 ...