ElasticSearch里根据查询条件更新文档

216 阅读1分钟

核心语法,script脚本语言

  • 单个字段
POST device/_update_by_query
{
 
 "query": {
   "match": {
      "deviceId": "9327010000104923"
    }
 }, 
  "script": {
    "source": "ctx._source.deleted = 0",
    "lang": "painless"
  }
}
  • 多个字段时,source里面的字段用;隔开
POST device/_update_by_query
{
 
 "query": {
   "match": {
      "deviceId": "9327010000104923"
    }
 }, 
  "script": {
    "source": "ctx._source.deleted = 0;ctx._source.aiType = 1",
    "lang": "painless"
  }
}
  • 优化语法,script每次会编译,使用param参数,将字段部分固定,节省消耗
POST device/_update_by_query
{
 
 "query": {
   "match": {
      "deviceId": "9327010000104923"
    }
 }, 
  "script": {
    "source": "ctx._source.deleted = params.deleted",
    "params": {
      "deleted": 0
    }, 
    "lang": "painless"
  }
}