ElasticSearch aggs仅返回10个桶

时间:2015-11-11 17:41:06

标签: elasticsearch aggregation

我正在运行aggs查询并指定大小为100,但ES只返回10个桶。为什么?我错过了什么?

{   
  "size": 100
   ,"query": {
      "bool": {
        "must": [
          { "term": {"app": "cnn"} }
        ]
      }
    }
   ,"aggs": {
    "unique_client": {
      "terms": {"field": "client"}    
      }     
    }
}

2 个答案:

答案 0 :(得分:8)

将top size参数设置为零,表示它是一个聚合。返回的桶数是通过在术语聚合括号中指定大小来设置的。

{   
  "size": 0
   ,"query": {
      "bool": {
        "must": [
          { "term": {"app": "cnn"} }
        ]
      }
    }
   ,"aggs": {
    "unique_client": {
      "terms": {
        "field": "client",
        "size" : 100
      }
     }     
    }
}

如果将其设置为0,则该值将默认为Integer.MAX_VALUE

答案 1 :(得分:2)

外部尺寸是针对您的查询获取的文档总数,因此size = 100返回100个文档,获取100个聚合存储桶,指定内部 unique_client aggs喜欢这个

{   
  "size": 0
   ,"query": {
      "bool": {
        "must": [
          { "term": {"app": "cnn"} }
        ]
      }
    }
   ,"aggs": {
    "unique_client": {
      "terms": {"field": "client"},
      "size" : 100
      }     
    }
}

默认的聚合大小是10,这就是你获得10个结果的原因,我已经将外部大小= 0来获得聚合。