如何在ElasticSearch查询中仅返回聚合统计信息?

时间:2014-09-30 06:31:39

标签: elasticsearch

是否可以从聚合查询中排除文档?我只需要知道“计数”和“总和”而不需要点击。我是这样做的:

{
  "query": {
    "match_all": {

    }
  },
  "aggs": {
    "my_agg": {
      "stats": {
        "field": "country_id"
      }
    }
  }
}

2 个答案:

答案 0 :(得分:11)

添加到您的查询?search_type=count。 例如:

GET /my_index/countries/_search?search_type=count
{
"query": {
    "match_all": {

    }
  },
  "aggs": {
    "my_agg": {
      "stats": {
        "field": "country_id"
      }
    }
  }
}

答案 1 :(得分:10)

要仅关注使用match_all查询进行聚合,您可以简单地使用" size":0(这指定您不需要查询结果)而不使用查询:

curl -XPOST "http://localhost:9200/indexname/doctype/_search" -d'
{
    "size": 0, 
    "aggs": {
        "my_agg": {
            "stats": {
                "field": "country_id"
            }
        }
    }
}'