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