Elasticsearch 批量更新
  • 准备条件
  • 查询数据
  • 批量更新


准备条件

以下查询操作都基于索引crm_flow_info来操作,索引已经建过了,本文主要讲Elasticsearch批量更新指定字段语句,下面开始写更新语句执行更新啦!

查询数据

查询指定shiftId为113的数据

GET crm_flow_info/_search

{

  "query": {

    "term": {

      "shiftId": 113

    }

  }

}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

查询结果

Elasticsearch 批量更新_数据

批量更新

批量更新shiftId为113的数据的remark字段内容为 test2023,执行命令

POST crm_flow_info/_update_by_query

{

  "query": {

    "match": {

      "shiftId": 113

    }

  },

  "script": {

    "source": "ctx._source['remark'] = 'test2023'"

  }

}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

执行结果如图

Elasticsearch 批量更新_数据_02


我们再来查询一下更新后的效果来验证一下批量更新是否成功

GET crm_flow_info/_search

{

  "_source": ["shiftId","remark"],

  "query": {

    "term": {

      "shiftId": 113

    }

  }

}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

查询结果

Elasticsearch 批量更新_字段_03


可以看到我们已经成功更新了字段remark的值数据,其中 “_source”: [“shiftId”,“remark”] 表示查询索引中指定这两个字段,因为字段太多的话不利于快速的观察结果,这里指定一下查询字段方便观察数据更新情况。