我有一个包含大量数据的 JSON。现在所有的字段不是每次都有固定类型的数据。例如Ids
,有些时间显示为完美整数,如123
,但有时显示为String
,如a123
。
默认情况下,index.mapper.dynamic
是true
. 因此,类型映射是根据第一次接收到的数据自动定义的,用于索引(While creating the index for first set of JSON data)
。现在假设,我的第一组数据的Id
值为123
,所以 type ofId
映射为Integer
。因此,当某些数据具有Id
as String
,likea123
时,它会抛出异常,因为类型映射到Integer
。
我们可以通过输入来关闭动态类型映射index.mapper.dynamic: false
。elasticsearch.yml
但它会禁用所有字段的类型映射。我想拥有Partial Type Mapping
。对于某些字段,例如date
,我希望有datetime
特定格式的类型映射。
所以我的目标是只为 JSON 数据的少数字段实现类型映射。因此,如果 JSON 中有 20 个字段,我会为 4 个字段的类型而烦恼,对于其他 16 个字段,如果它们被视为字符串,我可以接受。
有什么办法可以实现这种部分类型映射?我正在使用 Java 客户端。