使用上篇文章创建的索引进行学习: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. ql的python学习之路-day11

    前言:本节主要学习python内置的方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:qinjiaxi from collections ...

  2. ios上表单默认样式

    摘自:http://blog.sina.com.cn/s/blog_7d796c0d0102uyd2.html 可惜不能直接转到博客园. input[type="button"], ...

  3. IDEA插件记录

    IDEA个性化设置 1. 开发工具 Free MyBatis plugin 作用:可以快速的在mybatis 的mapper 文件和xml文件中快速切换 Lombok 作用:为POJO类添加@Data ...

  4. HTML新特性--canvas绘图-文本

    一.html5新特性--canvas绘图-文本(重点) #常用方法与属性 -ctx.strokeText(str,x,y);   绘制描边文字(空心) str:绘制文本 x,y:字符串左上角位置(以文 ...

  5. Linux内存屏障浅析

    根据该文章整理 https://blog.csdn.net/myxmu/article/details/8035025 1 解决的问题 内存屏障主要解决了单处理器下的乱序问题和多处理器下的内存同步问题 ...

  6. ubuntu下安装perl GD模块

    依次执行: sudo apt-get install libgd2-xpm-dev sudo perl -MCPAN -e shell install Bundle::CPAN install GD: ...

  7. Fabric进阶(一)—— 修改组织和通道的名称

    组织(Org)和通道(Channel)的名称是fabric网络比较重要的两个配置参数,在fabric提供的示例中都已经设置好了这两个参数,一般组织名为"Org1"和"Or ...

  8. poj3687拓扑排序

    Labeling Balls Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14749   Accepted: 4325 D ...

  9. 用jquery写一个上拉加载

    /*可加载页面吗*/function canLoadMore() { return $('.loadin').length < 1;}/*移除正在加载字样*/function removeMor ...

  10. APP元素定位和操作

    webdriver 提供了八种元素定位方法: 在 Python 语言中对应的定位方法如下:find_element_by_id()find_element_by_name()find_element_ ...