22、Elasticsearch 聚合查询全解:从基础到嵌套应用

Elasticsearch 聚合查询全解:从基础到嵌套应用

1. 范围聚合(Range Aggregations)

1.1 适用场景

术语聚合(terms aggregation)常用于字符串,但也可用于数值。对于低基数(low cardinality)的情况,如统计不同保修年限的笔记本电脑数量时很有用。然而,对于高基数字段,如年龄或价格,我们通常更关注范围。例如,想知道 18 - 39 岁、40 - 60 岁等不同年龄段的用户数量。虽然也能用术语聚合实现,但过程会很繁琐,若要添加子聚合,情况会更复杂。

1.2 范围聚合操作

为解决数值范围的问题,可使用范围聚合(range aggregation)。它允许指定数值范围,然后统计每个范围内的文档数量,这些统计结果可用于图形化展示,如饼图。

示例:按参会人数对活动进行分类
URI=localhost:9200/get-together/event/_search
curl "$URI?pretty&search_type=count" -d '{
"aggregations": {
  "attendees_breakdown": {
    "range": {
      "script": "doc['attendees'].values.length",
      "ranges": [
         { "to": 4 },
         { "from": 4, "to": 6 },
         { "from": 6 }
      ]
    }
  }
}}'
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值