聚合框架有助于根据搜索查询提供聚合数据。聚合查询是数据库中重要的功能特性,ES作为搜索引擎兼数据库,同样提供了强大的聚合分析能力。它基于查询条件来对数据进行分桶、计算的方法。有点类似于 SQL 中的 group by 再加一些函数方法的操作。聚合可以嵌套,由此可以组成复杂的操作(Bucketing聚合可以包含sub-aggregation)。


聚合计算的值可以取字段的值,也可是脚本计算的结果。查询请求体中以aggregations节点的语法定义: 


"aggregations" : {                        //也可简写为 aggs

    "<aggregation_name>" : {      //聚合的名字

        "<aggregation_type>" : {     //聚合的类型

            <aggregation_body>      //聚合体:对哪些字段进行聚合

        }

        [,"meta" : {  [<meta_data_body>] } ]?                 //元

        [,"aggregations" : { [<sub_aggregation>]+ } ]?   //在聚合里面在定义子聚合

    }

    [,"<aggregation_name_2>" : { ... } ]*                      //聚合的名字

}



————————————————

版权声明:本文为CSDN博主「布道」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/alex_xfboy/article/details/86100037