ES数据聚合 DSL实现Bucket聚合

ES数据聚合

聚合的分类

聚合(aggregations)可以实现对文档数据的统计、分析、运算。聚合常见的有三类:

  • 桶(Bucket)聚合:对文档做分组 (类似数据库的group by)
    • TermAggregation:按照文档字段值分组 (该字段就不能分词了 不能是text)
    • Date Histogram:按照日期阶梯分组,比如一周为一组,或者一个月为一组 (这个功能用mysql实现就复杂多了)
  • 度量(Metric)聚合:用于计算一些值
    • Avg
    • Max
    • Min
    • Stats:同时求max min avg sum
  • 管道(pipeline)聚合:其它聚合的结果为基础做的聚合

桶和度量用的比较多

image-20240723000917521

DSL实现Bucket聚合

image-20240723001414229

设置size为0 结果中不包含文档,只包含聚合结果

记住三个:聚合名称 聚合类型 聚合对应的字段

实例:

image-20240723002051162

可以理解为命中数符合条件的文档数据 相当于数据库中的一条条数据。可以修改排序规则 ,默认是按照_count 降序排序

image-20240723002220649

品牌一样的会放在一个桶里面 可以比作垃圾分类

image-20240723001824040


Bucket 聚合-限定聚合搜索范围

image-20240723002444437

默认情况下,bucket聚合是对索引库的所有文档做聚合,我们可以限定聚合的文档范围,添加 query条件即可

总结:

image-20240723002609502

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值