ElasticSearch无痛脚本:替换除一个字段外的所有字段

sc4hvdpw  于 2022-12-22  发布在  ElasticSearch
关注(0)|答案(1)|浏览(171)

我有一些文档,其中的字段数可能不固定,我知道它仍包含customID,我希望使用_update_by_query API替换除customID以外的所有字段
初始文件

{
   customID : “123”,
   field1 : ”a”,
   field2 : “b”,
   field3 : “c”,
   ….

}

我希望我的目标是:

{
   customID : “123”,
   replaced: true     
}

而不考虑文档中可用的额外字段的数量。

w1jd8yoj

w1jd8yoj1#

你可以这样做:

POST test/_update_by_query
{
  "script": {
    "source": "def customID = ctx._source.customID; ctx._source.clear(); ctx._source = ['customID': customID, 'replaced': true]",
    "lang": "painless"
  }
}

相关问题