Elasticsearch

时间:2017-09-14 21:47:10

标签: java json elasticsearch

有点困惑。

我正在使用jackson将JSON字符串解析为地图,然后在elasticsearch中接受。

工作正常。

但是由于JSON规范,所有整数和其他格式都需要作为字符串发送 - aka - "key":"value"。但是,弹性搜索将它们视为字符串,而不是数字。这使得像用户评级这样的总值不可能在它应该是微不足道的时候。

如何使用JSON格式将数字/整数输入到elasticsearch?

有解决方法吗?

1 个答案:

答案 0 :(得分:3)

您可能需要为索引创建映射。

映射是定义文档及其包含的字段的存储和索引方式的过程。例如,使用映射来定义:

  • 应将哪些字符串字段视为全文字段。
  • 哪些字段包含数字,日期或地理位置。
  • 是否应将文档中所有字段的值索引到catch-all _all字段中。
  • 日期值的格式。
  • 自定义规则,用于控制动态添加字段的映射。

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html

如果您已经拥有一些您不想丢失的现有数据,则需要在更新映射后重新编制索引。由于ES索引数据的方式,您无法在创建后更改类型。

https://www.elastic.co/blog/changing-mapping-with-zero-downtime https://www.elastic.co/guide/en/elasticsearch/reference/5.6/docs-reindex.html