我有一个包含大量数据的JSON。现在,所有的字段每次都没有固定类型的数据。例如,某些Ids
有时会显示为完美整数,如123
,但有时候它会显示为String
,如a123
。ElasticSearch中的部分类型映射
默认情况下,index.mapper.dynamic
是true
。因此,类型映射会根据首次收到的索引(While creating the index for first set of JSON data)
的数据自动定义。现在我们假设,我的第一组数据的Id
值为123
,因此Id
的类型映射为Integer
。因此,当某些数据的Id
为String
(如a123
)时,它会抛出异常,因为该类型映射到Integer
。
我们可以通过将index.mapper.dynamic: false
放入elasticsearch.yml
来关闭动态类型映射。但它会禁用所有字段的类型映射。我想要有Partial Type Mapping
。对于一些字段,如date
,我想以特定格式为datetime
进行类型映射。
所以我的目标是只实现JSON数据的几个字段的类型映射。因此,如果JSON中有20个字段,那么我打扰4个字段的类型,如果其他16个字段被认为是String,那么我也可以。
有什么办法可以实现这种局部类型映射吗?我正在使用Java客户端。