我有一个场景,我在刷新索引之前通过查询运行多个更新。这导致各种版本冲突。
要求是我不必关心以前的版本,因为如果它被新查询更新。
我在请求中使用conflict=proceed
因为我不希望他们中止。但是,我不确定使用conflict=proceed
选项,版本冲突文档实际上正在更新或拒绝。
如果存在版本冲突,Elasticsearch不会更新文档,我如何获取这些特定匹配文档并手动更新。
示例代码:
foreach ($this->requests as $request) {
$futures[] = $client->updateByQuery($request);
}
foreach ($futures as $future) {
$future->wait();
if ($future['version_conflicts'] > 0) {
// How to get those documents which were rejected and update them manually. Since I always want to have the last version
}
}
由于
答案 0 :(得分:3)
您可以将自己的version
添加为新字段: