在ElasticSearch 5聚合中最适合使用的数据类型是什么:数字或关键字?

发布于 2021-02-01 11:49:32

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

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

当前,它们中的每一个都使用最小的适当数字数据类型(例如,byte,short等)。

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

还是应该使用关键字数据类型?

在此先感谢您的任何建议!

关注者
0
被浏览
119
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    如果这些字段的值是数字,则应使用数字类型,如果它们是字符串,则应使用关键字类型。

    要记住的一件事是,如果您想在某个时候在这些字段上运行range查询和/或range聚合,则应该优先使用数字类型,以便可以对这些值进行数字排序而不是按词法排序。

    例如:如果您有国家ID(例如1、2、3,…,10、11、12,…,20,…)并且映射为关键字(即字符串),则如果您运行range使用对其进行查询(或聚合)from: 1, to: 3,您还将得到11、12、13等,因为在字符串世界中,11在词法上小于3。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看