如何获得具有大小设置的聚合的唯一术语总数?

时间:2018-05-15 18:31:38

标签: elasticsearch unique elasticsearch-aggregation

在ElasticSearch查询中使用Terms Aggregation时,结果会将存储桶限制为前10项或size参数上设置的值。例如:

{
  "aggs" : {
    "cities" : {
      "terms" : { 
        "field" : "city",
        "size": 20
      }
    }
  }
}

这个查询会给我前20个桶及其数量。如何更改此查询以了解唯一"city"字词的总数,因此我可以提供类似&#34; 显示73个&#34;的前20个城市的内容?< / p>

1 个答案:

答案 0 :(得分:1)

可以在同一查询中请求Cardinality Aggregation。所以在提供的示例中,我们将:

{
  "aggs" : {
    "cities" : {
      "terms" : { 
        "field" : "city",
        "size": 20
      }
    },
    "unique_cities": {
      "cardinality": {
        "field": "city"
      }
    }
  }
}

除了"aggregations"元素(包含"cities")之外,buckets响应还会包含带基数的"unique_cities"元素:

"unique_cities": {
  "value": 73
}

github对此问题的看法: Return number of buckets for terms aggregation