聚合查询

Elasticsearch 有一个功能叫聚合(aggregations),允许我们基于数据生成一些精细的分析结果。聚合与 SQL 中的 GROUP BY 类似但更强大。

基本语法

GET /index/_search
GET /megacorp/_search
{
  "aggs": {
    "NAME": {
      "AGG_TYPE": {}
    }
  }
}

sum

求员工的年龄综合

GET /megacorp/_search
{
  "aggs": {
    "employee age sum": {
      "sum": {
        "field": "age"
      }
    }
  }
}

minmaxavg sum 这几个的用法几乎一直

terms

举个例子,挖掘出员工中最受欢迎的兴趣爱好:

结果如下:


filter

top_hits

geo_distance

这里的聚合类型还很多,大家可以慢慢的发掘

组合示例

每个查询可以进行多个聚合条件进行约束,如:我们要查询员工里最受欢迎的爱好,已经这里最大的年龄?

Last updated

Was this helpful?