elasticsearch - 什么是最适合用于 ElasticSearch 聚合的数据类型 5 : numeric or keyword?

标签 elasticsearch elasticsearch-5

在 Elasticsearch 索引中,我有几个字段引用主要类别的 ID(例如 sector_id、country_id 等)。

这些字段仅用于过滤(使用术语/术语过滤器)和在术语聚合中创建桶(以及其他)。

他们每个人目前都在使用最小的合适的数字数据类型(例如 byte、short 等)

这是用于大量聚合的最佳数据类型吗?

或者这些应该使用关键字数据类型吗?

提前感谢您的任何建议!

最佳答案

如果这些字段的值是数字,你应该选择数字类型,如果它们是字符串,那么选择关键字类型。

要记住的一件事是,如果您想在某些时候对这些字段运行 range 查询和/或 range 聚合,您应该更喜欢使用数字预先输入,以便这些值可以按数字而不是词汇排序。

例如:如果您有国家 ID,例如 1、2、3、...、10、11、12、...、20、...,并且它们被映射为关键字(即字符串),那么如果您使用 from: 1, to: 3 对它们运行 range 查询(或聚合),您还会得到 11、12、13 等,因为在字符串中world,11 在词汇上小于 3。

关于elasticsearch - 什么是最适合用于 ElasticSearch 聚合的数据类型 5 : numeric or keyword?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40783054/

相关文章:

elasticsearch - Elasticsearch 文档计数传递数组

gradle - gradle 中的 sl4j 版本与 Storm 1.0.1 和 elasticsearch 5.2 冲突

c# - 使用 NEST for .NET 的 Elasticsearch 5.4 分页

Elasticsearch _cat/indices 出现错误?

elasticsearch - Kibana可视化中的聚合之聚合

elasticsearch - 设置索引期间缺失字段的默认值

elasticsearch - 如何在 Elasticsearch 中按月分组

python - "Order By" Elasticsearch

elasticsearch - 长度大于20的elasticsearch查询文本字段

php - 在 Elasticsearch 5 上使用过滤器获取嵌套文档