美文网首页
ES 聚合查询

ES 聚合查询

作者: 愤愤的有痣青年 | 来源:发表于2020-06-24 13:03 被阅读0次

在es中的聚合有两个概念,一个是桶Buckets,还有一个是指标Metrics,两个概念映射到sql语句的分组中时,桶相当于group by后面的分组,例如按性别分组,则有男性桶和女性桶.指标相当于select中的数据,例如统计各个性别的人数,则人数为指标.

aggs
在es中聚合操作被置于顶层参数aggs之下,其全拼为aggregations,其在es中等效于aggs.
一个示例如下:

{
    "size" : 0,
    "aggs" : { 
        "group_sex" : { 
            "terms" : { 
              "field" : "sex"
            }
        }
    }
}
    1. 其中size为需要需要取出的数据数量,若不带此参数,将会返回所有用于聚合的文档.
    1. group_sex字段为分组名称,是自定义的.
    1. "field" : "sex"表示按照sex字段分组

执行聚合后得到的结果如下:

{
...
   "hits": {
      "hits": [] 
   },
   "aggregations": {
      "group_sex": { 
         "buckets": [
            {
               "key": "man", 
               "doc_count": 4 
            },
            {
               "key": "woman",
               "doc_count": 2
            }
      }
   }
}
    1. 因为我们设置了 size 参数,所以不会有 hits 搜索结果返回。
    1. group_sex聚合是作为 aggregations 字段的一部分被返回的。
    1. 每个桶的 key 都与 color 字段里找到的唯一词对应。它总会包含 doc_count 字段,告诉我们包含该词项的文档数量。

相关文章

网友评论

      本文标题:ES 聚合查询

      本文链接:https://www.haomeiwen.com/subject/eekxfktx.html