アナライザ設定の deep-equal 差分検知は再indexを誤爆させうる
検索基盤
Elasticsearch/OpenSearch
冪等性/バッチ
知識
運用
インデックス設定(アナライザ/char_filter 等)を「宣言した設定」と「実インデックスから取得した設定」の deep-equal で比較し、差分があれば再indexするバッチは、エンジンが設定をそのまま echo し返さない要素で誤爆する。エンジンは正規化・補完・順序変更を加えて返すことがあり(char_filter の一部やデフォルト補完キー)、宣言側と取得側が字面で一致しなくなると、実質同一でも毎回「差分あり」と判定して不要な再indexが走り続ける。落とし穴: 新しい analyzer/char_filter を足した直後から冪等テストが落ちる、または本番でバッチ実行のたびに再indexが走る。回避は、比較前に両者を同じ正規化関数へ通してから比較する、あるいはエンジンが実際に返す形を取り込んだ期待値で比較する。設定を消費する冪等性テストは新規要素追加時に必ず実行して確認する。