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