SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【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 でも発生することがあります。

関連するメモ

コメント