欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Elasticsearch7.XAggregationBuliders相关聚合函数(四)范围聚合

时间:2023-05-02

四、范围

range

使用户能够定义一组范围 - 每个范围代表一个存储桶。在聚合过程中,将从每个文档中提取的值将针对每个存储桶范围进行检查,并针对相关/匹配文档进行"存储桶"检查。请注意,此聚合包括值,并排除每个范围的值请求示例:

GET sales/_search{ "aggs": { "price_ranges": { "range": { "field": "price", "keyed": true, "ranges": [ { "key": "cheap", "to": 100 }, { "key": "average", "from": 100, "to": 200 }, { "key": "expensive", "from": 200 } ] } } }}

返回示例:

{ ... "aggregations": { "price_ranges": { "buckets": { "cheap": { "to": 100.0, "doc_count": 2 }, "average": { "from": 100.0, "to": 200.0, "doc_count": 2 }, "expensive": { "from": 200.0, "doc_count": 3 } } } }}

dateRange

‎专用于日期值的范围聚合。此聚合与正常‎‎范围‎‎聚合之间的主要区别在于,可以在 ‎‎Date Math‎‎ 表达式中表示 and 值,并且还可以指定返回 和 响应字段的日期格式。请注意,此聚合包括值,并排除每个范围的值。请求示例:

POST /sales/_search?size=0{ "aggs": { "range": { "date_range": { "field": "date", "format": "MM-yyyy", "ranges": [ { "to": "now-10M/M" }, { "from": "now-10M/M" } ] } } }}

返回示例:

{ ... "aggregations": { "range": { "buckets": [ { "to": 1.4436576E12, "to_as_string": "10-2015", "doc_count": 7, "key": "*-10-2015" }, { "from": 1.4436576E12, "from_as_string": "10-2015", "doc_count": 0, "key": "10-2015-*" } ] } }}

ipRange

和上面的时间范围聚合类型,此针对的是IP类型的数据请求示例:

GET /ip_addresses/_search{ "size": 10, "aggs": { "ip_ranges": { "ip_range": { "field": "ip", "ranges": [ { "to": "10.0.0.5" }, { "from": "10.0.0.5" } ] } } }}

返回示例:

{ ... "aggregations": { "ip_ranges": { "buckets": [ { "key": "*-10.0.0.5", "to": "10.0.0.5", "doc_count": 10 }, { "key": "10.0.0.5-*", "from": "10.0.0.5", "doc_count": 260 } ] } }}

还有更多的IP范围查询,详细:官方文档

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。