我正在尝试更新使用错误(对我们)国家/地区名称创建的elasticsearch上的多个文档。
我试图通过使用“update_by_query”插件版本2.5.0(应该与ES 1.5.2一起使用)来实现。 plugin page
这是我尝试过的:
POST incidents/political/_update_by_query
{
"query":{
"filtered":{
"filter":{
"bool":{
"must":{
"term":{
"CountryName": "Cote d'Ivoire"
}
}
}
}
}
},
"script":{
"inline":"ctx._source.CountryName = newName",
"params":{
"newName":"Cote dIvoire"
}
}
}
结果是:
{
"ok": true,
"took": 9,
"total": 2,
"updated": 0,
"indices": [
{
"incidents": {}
}
]
}
我可以看到它能够找到这两个记录,但由于某种原因无法更新它们。
我在配置文件中启用了所需的设置:
script.inline: on
script.indexed: on
script.disable_dynamic: false
我不确定可能会遗漏或错误。
答案 0 :(得分:2)
尝试编写查询的脚本部分,如下所示:
"script" : "ctx._source.CountryName = 'Cote dIvoire'"
让我知道它是否有效。