Я пытаюсь заставить работать запрос, который будет обновлять определенное поле в документе, если оно соответствует запросу (в этом примере, когда одно поле соответствует точному значению).
Здесь я пытаюсь запросить все документы, в которых для поля Foo установлено значение Bar, и установить для поля TextField5 в каждом из них значение 1337. В индексе есть только несколько, которые соответствуют этому. Однако, когда я запускаю этот запрос, каждый документ в индексе обновляет свое TextField5.
POST /threat_vuln/_update_by_query
{
"query": {
"match": {
"Foo": "Bar"
}
},
"script" : {
"source" : "ctx._source.TextField5='1337';",
"lang" : "painless"
}
}
Я ознакомился с API обновлений. и Update By Query API и мне чего-то не хватает. Как я могу изменить это, чтобы обновлять только те документы, которые соответствуют запросу?
Я на Кибане 7.4.0
РЕДАКТИРОВАТЬ: Также пробовал это, которое по-прежнему обновляет каждый документ в индексе вместо тех, которые соответствуют запросу:
POST /threat_vuln/_update_by_query
{
"query": {
"bool" : {
"must": [
{
"match": {
"Foo": "Bar"
}
}
]
}
},
"script" : {
"source" : "ctx._source.TextField5='1337';",
"lang" : "painless"
}
}