【Elasticsearch】version_conflict_engine_exception
問題
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 でも発生することがあります。
コメント