В Elasticsearch API «Обновление по запросу» увеличивает внешнюю версию обновленных документов?
Мы индексируем документы в Elasticsearch сверсия.
Затем мы иногда обновляем
cars
документов с использованием и языка сценариев Painless . Запрос на обновление выглядит так:
POST http://search/cars/_update/445398312253724778?routing=91e2c33a-52f5-43f4-b8c5-6fb5673ff6e0&refresh=true&timeout=1m
{
"script": {
"source": "if (ctx._source.status != 'NEW') { ctx.op = 'noop' } ctx._source.transition = params.status",
"lang": "painless",
"params": {
"status": "OBSOLETE"
}
},
"scripted_upsert": true
}
Вроде версия документов не увеличивается при использовании Update By Query API. API Update By QueryВ документации Update By Query API я также ничего не нашел по поводу обновления версий .
Однако, согласно сообщению в блоге Elasticsearch, в котором подробно описывается поддержка версий Elasticsearch ,
При каждой операции записи в этот документ, будь то индексация, обновление или удаление, Elasticsearch будет увеличивать версию на 1.
Я сейчас в замешательстве. Увеличивает ли API обновления по запросу
external
версии обновленных документов?
1 ответ
Когда вы индексируете документ с внешним управлением версиями, вы предоставляете только номер внешней версии, вот и все, ES не будет делать ничего, кроме сохранения версии, которую вы ему даете. Сам документ не помечен как внешний.
При обновлении одного документа вы снова можете указать внешний номер версии.
Но при обновлении по запросу можно использовать только внутреннюю версию (т.е. версию++), потому что весь процесс обновления происходит внутри ES, так как вы не можете предоставить какой-либо внешний номер версии.