大量のデータを含む JSON があります。現在、すべてのフィールドのデータ型が毎回固定されているわけではありません。たとえば、 のようにIds完全な整数として表示される場合もありますが、 のよう123に表示される場合もあります。Stringa123
デフォルトでは、index.mapper.dynamicですtrue。そのため、型マッピングは、インデックス作成のために初めて受信したデータごとに自動的に定義されます(While creating the index for first set of JSON data)。Idここで、データの最初のセットがとして値を持っているとしましょう。123そのため、タイプ はIdとしてマッピングされIntegerます。したがって、一部のデータがIdas String、 likea123の場合、タイプが にマップされるため、例外がスローされIntegerます。
index.mapper.dynamic: falseを入れることで、動的型マッピングをオフにすることができますelasticsearch.yml。ただし、すべてのフィールドのタイプ マッピングが無効になります。したいPartial Type Mapping。のような一部のフィールドでは、特定の形式でdateのタイプ マッピングが必要です。datetime
したがって、私の目標は、JSON データのいくつかのフィールドに対してのみ型マッピングを実現することです。したがって、JSON に 20 個のフィールドがある場合、4 個のフィールドの型を気にし、他の 16 個のフィールドが文字列と見なされる場合は、それで問題ありません。
このような部分型マッピングを実現する方法はありますか? Java クライアントを使用しています。