10. Aggregation(执行聚合)

(执行聚合功能属于DSL的advanced应用, 单独拿出来做一章)

聚合提供了从数据中分组和提取数据的能力。最简单的聚合方法大致等于SQL Group by和SQL聚合函数。在elasticsearch中,执行搜索返回this(命中结果),并且同时返回聚合结果,把以响应中的所有hits(命中结果)分隔开的能力。这是非常强大且有效的,你可以执行查询和多个聚合,并且在一次使用中得到各自的(任何一个的)返回结果,使用一次简洁和简化的API来避免网络往返。

基本语法:

"aggs":{

    "aggs_name这次聚合的名字,方便展示在结果集中":{

        "AGG_TYPE聚合的类型(avg,term,terms)":{} 

     }

}

简单聚合:搜索address中包含mill的所有人的年龄分布以及平均年龄,但不显示这些人的详情

aggregation可以有多个

复杂: 按照年龄聚合,并且求这些年龄段的这些人的平均薪资

查出所有年龄分布,并且这些年龄段中性别M的平均薪资和性别F的平均薪资以及这个年龄段的总体平均薪资

你可能感兴趣的:(10. Aggregation(执行聚合))