【Elasticsearch】version_conflict_engine_exception
2019/09/15
未分類
問題
elasticsearchで、_delete_by_query APIを使ってデータの削除をしていると、以下のエラーが発生しました。どうするとよいですか。
["id"]=>
string(20) "7ClKcHABV5V9scCfYtSU"
["cause"]=>
object(stdClass)#88 (5) {
["type"]=>
string(33) "version_conflict_engine_exception"
["reason"]=>
string(111) "[7ClKcHABV5V9scCfYtSU]: version conflict, required seqNo [1625442], primary term [1]. but no document was found"
["index_uuid"]=>
string(22) "-oE6KDcSTY62nYpxkSz2MQ"
["shard"]=>
string(1) "0"
["index"]=>
string(4) "xxxx"
}
["status"]=>
int(409)

答え
削除中にドキュメントの更新があると発生するそうで、
エラーで中断しているので、素直にもう一度実行するもよし、
conflicts=proceed のオプションを指定して、エラーを無視するようにしてもよし
のようです。
このエラーは _update_by_query でも発生することがあります。