Elasticsearchは、既存のタイプに適合しないフィールドにデータを挿入すると、デフォルトで例外をスローします。たとえば、フィールドが数値型として作成された場合、そのフィールドの文字列値を含むドキュメントを挿入するとエラーが発生します。Elasticsearchで `ignore_malformed`がトリガーされた文書を見つける
この動作は、ignore_malformed
の設定を有効にすることで変更できます。つまり、このフィールドはインデックス作成の目的で黙って無視されますが、_source
文書に保持されます。つまり、無効な値は検索または集計できません。返された文書。
これは、私たちのユースケースでは好ましい動作ですが、私たちは将来的にそれらを修正できるように、何らかの形でそのようなドキュメントを見つけることができるようにしたいと考えています。
不正なフィールドが無視されたドキュメントに何らかの理由でフラグを立てる方法はありますか?ドキュメントの挿入プロセスを完全に制御するので、すべての挿入フラグを変更するか、試用版などを使用して目標を達成することができます。
フィールドを持っていないドキュメントからそのフィールド(ただし不正な形式)を持つドキュメントを区別することは非常に困難です。私はフィールドがインデックスとして存在しないことをチェックする何らかの検索が必要ですが、 "_source"に存在します。それに加えて、私は1000のフィールドがあり、競合するフィールドを見つけるのは難しいでしょう。 – Nakedible