首页 > 代码库 > 【ES】学习10-聚合3
【ES】学习10-聚合3
聚合是在查询匹配的文档中做统计的
不指定查询语句时,从所有文档中匹配。
下面两个语句等价:
GET /cars/transactions/_search { "size" : 0, "aggs" : { "colors" : { "terms" : { "field" : "color" } } } }
GET /cars/transactions/_search { "size" : 0, "query" : { "match_all" : {} }, "aggs" : { "colors" : { "terms" : { "field" : "color" } } } }
全局桶:global
一个包含所有数据的桶,可以在即想使用子集,又想使用全集时用到。
GET /cars/transactions/_search { "size" : 0, "query" : { "match" : { "make" : "ford" } }, "aggs" : { "single_avg_price": { "avg" : { "field" : "price" } }, "all": { "global" : {}, "aggs" : { "avg_price": { "avg" : { "field" : "price" } } } } } }
一个同时包括过滤和聚合的例子
GET /cars/transactions/_search { "size" : 0, "query" : { "constant_score": { "filter": { "range": { "price": { "gte": 10000 } } } } }, "aggs" : { "single_avg_price": { "avg" : { "field" : "price" } } } }
过滤桶:filter
只有查询结果中符合条件的文档才会放入过滤桶,用于对聚合结果过滤
GET /cars/transactions/_search { "size" : 0, "query":{ "match": { "make": "ford" } }, "aggs":{ "recent_sales": { "filter": { "range": { "sold": { "from": "now-1M" } } }, "aggs": { "average_price":{ "avg": { "field": "price" } } } } } }
后过滤器:post_filter
只过滤搜索结果,不过滤聚合结果
说实话,例子我没看懂。感觉短期内用不上,先跳过了。
【ES】学习10-聚合3
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。