Con*_*ors 6 elasticsearch elasticsearch-5
在 Elasticsearch 索引中,我有几个字段引用了主要类别的 ID(例如,sector_id、country_id 等...)。
这些字段仅用于过滤(使用 term/terms 过滤器)和在 term 聚合中创建存储桶(等等)。
它们中的每一个当前都使用最小的合适的数字数据类型(例如字节、短等)。
这是用于重聚合的最佳数据类型吗?
或者这些应该使用关键字数据类型?
提前感谢您的任何建议!
如果这些字段的值是数字,则应选择数字类型,如果它们是字符串,则应选择关键字类型。
需要记住的一件事是,如果您想在某个时刻对这些字段运行range查询和/或range聚合,您应该更喜欢预先使用数字类型,以便这些值可以按数字排序,而不是按词法排序。
例如:如果您有国家/地区 ID,例如 1、2、3、...、10、11、12、...、20、...,并且它们被映射为关键字(即字符串),那么如果您运行range使用 查询(或聚合)它们from: 1, to: 3,您还会得到 11、12、13 等,因为在字符串世界中,11 在词法上小于 3。