ES-聚合操作

Posted qq628b229e2808e

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES-聚合操作相关的知识,希望对你有一定的参考价值。


  • 所谓​​聚合​​​,就是在查询完某些数据之后,进行​​group by​​ 等操作,并进行一系列的统计
  • 基本语法如下:


POST /index/_search

    "size":0,
    "query":
        "match_all":

        
    ,
    "aggs":
        "group_by_model":
            "terms":
                "field":"red"
            
        
    

ES-聚合操作_ElasticSearch


  • 以下是对以上的参数的解释:



  • ​size​​:不查询任何数据,因为聚合操作主要是为了统计,查询数据并没有意义
  • ​match_all​​:查询所有
  • ​group_by_model​​​:相当于给​​count(*)​​ 起一个别名
  • ​field​​:根据哪个字段聚合


统计每个type下的文档数量


  • 对应的 SQL 语句:select type,count(*) from artuicle group by type


POST /index/_search

    "query":
        "match_all":

        
    ,
    "size":0,
    "aggs":
        "types_count":
            "terms":
                "field":"types"
            
        
    

ES-聚合操作_javascript_02

统计阅读量大于100的文档数量

POST /index/_search

    "query":
        "range":
            "red":
                "gt":100
            
        
    ,
    "size":0,
    "aggs":
        "types_count":
            "terms":
                "field":"types"
            
        
    

ES-聚合操作_ElasticSearch_03


  • 除了统计数量以外,es 还支持​​最大值​​​、​​最小值​​​、​​平均值​​​、​​总和​​ 等操作
  • 分别对应着max、min、avg、sum,只需要把上面的​​terms​​ 换成这些关键字即可


bucket和metric


  • ​bucket​​:数据的分组


班级

姓名

一年级

BNTang

一年级

李四

二年级

王五

二年级

赵六

二年级

田七


  • 划分出来两个​​bucket​​,一个一年级,一个是二年级
  • 一年级​​bucket​​:包含了 2 个人,BNTang,李四
  • 二年级​​bucket​​:包含了 3 个人,王五,赵六,田七



  • ​metric​​​:对数据分组执行的统计,比如说​​最大值​​​、​​最小值​​​、​​总数​​​、​​平均值​




以上是关于ES-聚合操作的主要内容,如果未能解决你的问题,请参考以下文章

es笔记七之聚合操作之桶聚合和矩阵聚合

ElasticSearch_05_ES聚合aggregations运算

ElasticSearch_07_ES聚合aggregations运算

ElasticSearch_07_ES聚合aggregations运算

ElasticSearch_07_ES聚合aggregations运算

ES-聚合操作