内容简介:为了描述ES是如何进行嵌套聚合、下钻分析,聚合分析。下面通过五个业务需求来进行描述。由于tag是一个数组,所以其实统计的就是针对tag数组中的每个值,所有文档中tag字段中包含这个值的文档数量。
为了描述ES是如何进行嵌套聚合、下钻分析,聚合分析。下面通过五个业务需求来进行描述。
1、计算每个tag下的商品数量
由于tag是一个数组,所以其实统计的就是针对tag数组中的每个值,所有文档中tag字段中包含这个值的文档数量。
GET /product/_search { "size": 0, "aggs": { "all_tags": { "terms": { "field": "tags", "size": 10 } } } } { "took" : 0, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 3, "relation" : "eq" }, "max_score" : null, "hits" : [ ] }, "aggregations" : { "all_tags" : { "doc_count_error_upper_bound" : 0, "sum_other_doc_count" : 0, "buckets" : [ { "key" : "fangzhu", "doc_count" : 2 }, { "key" : "meibai", "doc_count" : 1 }, { "key" : "qingxin", "doc_count" : 1 } ] } } }
2、对名称中包含yagao的商品,计算每个tag下的商品数量
GET /product/_search { "query": { "match": { "name": "yagao" } }, "size": 0, "aggs": { "all_tags": { "terms": { "field": "tags", "size": 10 } } } }
3、计算每个tag下的商品的平均价格
GET /product/_search { "size": 0, "aggs": { "group_by_tags": { "terms": { "field": "tags", "size": 10 }, "aggs": { "avg_price": { "avg": { "field": "price" } } } } } }
4、计算每个tag下商品的平均价格,并且按照平均价格降序排列
GET /product/_search { "size": 0, "aggs": { "group_by_tags": { "terms": { "field": "tags", "size": 10, "order": { "avg_price": "desc" } }, "aggs": { "avg_price": { "avg": { "field": "price" } } } } } }
5、按照指定的价格范围区间进行分组,然后在每组内在按照tag进行分组,最后在计算每组的平均价格
GET /product/_search { "size": 0, "aggs": { "group_by_price": { "range": { "field": "price", "ranges": [ { "from": 0, "to": 20 }, { "from": 20, "to": 40 }, { "from": 40, "to": 50 } ] }, "aggs": { "group_by_tags": { "terms": { "field": "tags", "size": 10 }, "aggs": { "avg_price": { "avg": { "field": "price" } } } } } } } }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Elasticsearch 之聚合分析入门
- 爱分析《数据智能行业报告》发布,解析集奥聚合缘何在政务场景快速落地
- 监控聚合器系列之: open-falcon新聚合器polymetric
- mongodb高级聚合查询
- MongoDB聚合(aggregate)
- mongodb 聚合管道
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。