桶聚合
在前面几篇博客中介绍的聚合指标是指符合条件的文档字段的聚合,有时还需要根据某些维度进行聚合。例如在搜索酒店时,按照城市、是否满房、标签和创建时间等维度统计酒店的平均价格。这些字段统称为“桶”,在同一维度内有一个或者多个桶。例如城市桶,有“北京”、“天津”等,是否满房桶,有“满房”和“非满房”。
1.1 单维度同聚合
最简单的桶聚合是单维度桶聚合,指的是按照一个维度对文档进行分组聚合。在桶聚合时,聚合的桶也需要匹配,匹配的方式有terms
、filter
和ranges
等。这里只介绍比较有代表性的terms
查询和ranges
查询。
1.1.1 terms聚合
terms
聚合是按照字段的实际完整值进行匹配和分组的,它使用的维度字段必须是keyword
、bool
、keyword
数组等适合精确匹配的数据类型,因此不能对text
字段直接使用terms
聚合,如果对text
字段有terms
聚合的需求,则需要在创建索引时为该字段增加多字段功能。
以下的DSL描述的是按照城市进行聚合的查询:
# 按照城市进行聚合
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » ElasticSearch的桶聚合
发表评论 取消回复