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

ehs*_*adi 8 elasticsearch

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

{
  "query": {
    "match_all": {

    }
  },
  "aggs": {
    "my_agg": {
      "stats": {
        "field": "country_id"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

And*_*fan 11

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

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

    }
  },
  "aggs": {
    "my_agg": {
      "stats": {
        "field": "country_id"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

  • "在2.0.0-beta1中不推荐使用:count不会比query_then_fetch提供任何优势,大小为0." [链接](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-search-type.html#count) (2认同)

Kev*_*in. 10

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

curl -XPOST "http://localhost:9200/indexname/doctype/_search" -d'
{
    "size": 0, 
    "aggs": {
        "my_agg": {
            "stats": {
                "field": "country_id"
            }
        }
    }
}'
Run Code Online (Sandbox Code Playgroud)