Elasticsearch 客户端

1. 聚合aggregations

Elasticsearch的聚合主要用于实现对数据的统计、分析,包含多种类型。

  • 一个为桶,类似于group by,表示按照某种方式对数据进行分组,每一组数据在ES中称为一个桶,划分桶的方式有多种
    • Date Histogram Aggregation:根据日期阶梯分组,例如给定阶梯为周,会自动每周分为一组
    • Terms Aggregation:根据词条内容分组,词条内容完全匹配的为一组
    • Range Aggregation:数值和日期的范围分组,指定开始和结束,然后按段分组
    • Histogram Aggregation:根据数值阶梯分组,与日期类似,需要知道分组的间隔(interval
  • 一个是度量,用于metrics aggregations,分组完成以后,一般会对组中的数据进行聚合运算,如求最大值、最小值、平均值等,这种聚合叫度量
    • Avg Aggregation:求平均值
    • Max Aggregation:求最大值
    • Min Aggregation:求最小值
    • Percentiles Aggregation:求百分比
    • Stats Aggregation:同时返回avgmaxminsumcount
    • Sum Aggregation:求和
    • Top hits Aggregation:求前几
    • Value Count Aggregation:求总数

  ES中,需要进行聚合、排序、过滤的字段其处理方式比较特殊,因此不能被分词,必须使用keyword 数值类型

数据准备:

Elasticsearch 客户端

Elasticsearch 客户端

1.1 聚合为桶

  • 按照汽车的颜色 color划分,使用TermAggregation类型,按照颜色的名称来分桶
    • size: 查询条数,这里设置为0,因为我们不关心搜索到的数据,只关心聚合结果,提高效率
    • aggs:声明这是一个聚合查询,是aggregations的缩写
    • popular_colors:给这次聚合起一个名字,可任意指定。
    • terms:聚合的类型,这里选择terms,是根据词条内容(这里是颜色)划分
    • field:划分桶时依赖的字段

上一篇:svg点击弹窗


下一篇:性能测试工具JMeter 基础(五)—— 测试元件: 测试计划