10.Elasticsearch应用(十)

Elasticsearch应用(十)

1.为什么需要聚合操作

聚合可以让我们极其方便的实现对数据的统计、分析、运算,例如:

  • 什么品牌的手机最受欢迎?
  • 这些手机的平均价格、最高价格、最低价格?
  • 这些手机每月的销售情况如何?

2.什么是聚合

聚合(aggregations)可以实现对文档数据的统计,分析,运算,在做聚合的时候往往是与文档过滤一起用的,一般不会对整个索引库进行聚合操作

3.聚合语法

10.Elasticsearch应用(十)_第1张图片

4.聚合分类

  1. 桶聚合(Bucket): 用来对文档做分组,类似于MySQL的group by
    • TermAggregation: 按照文档字段值分组
    • Date Histogram: 按照日期阶梯分组,例如一周为一组,或者一月为一组
    • 注意:
      • 分词字段不行,必须是不能分词的字段
      • 默认情况下,Bucket聚合会统计Bucket内的文档数量,记为_count,并且按照_count降序排序
      • 默认情况下,Bucket聚合是对索引库的所有文档做聚合,我们可以限定要聚合的文档范围,只要添加query条件即可
  2. 度量聚合(Metric): 用以计算一些值,比如:最大值,最小值,平均值等
    • Avg: 求平均值
    • Max: 求最大值
    • Min: 求最小值
    • Stats: 同时求max,min,avg,sum等
  3. 管道聚合(pipeline): 其他聚合的结果为基础做聚合
  4. Matrix: 支持对多个字段的操作并提供一个结果矩阵

5.度量聚合

介绍

—些数学运算,可以对文档字段进行统计分析,类比MySQL中的 min(),max(),sum() 操作

你可能感兴趣的:(搜索引擎,elasticsearch,大数据,搜索引擎)