elasticsearch OpenSearch:按存储桶查询字段的基数

k7fdbhmy  于 2023-10-17  发布在  ElasticSearch
关注(0)|答案(1)|浏览(115)

是否有方法查询每个术语聚合存储桶的字段的唯一计数?
例如,假设我有一个名为cars的索引,其中包含这样的文档:

{
  "year": 2023,
  "make": "toyota",
  "model": "camry",
  "color": "red"
}

是否有一个聚合,将允许我查询的数量独特的颜色按年?
如果我想在一个单独的Postgres表中存储相同的信息,我可能会使用以下查询来查找:

SELECT year, COUNT(DISTINCT color)
FROM cars
GROUP BY year;
8dtrkrch

8dtrkrch1#

使用嵌套聚合是我一直在寻找的:

GET _search
{
  "size": 0,
  "aggs":{
    "docs_by_year": {
      "terms": {
        "field": "year",
        "size": 50
      },
      "aggs": {
        "unique_colors": {
          "cardinality": {
            "field": "color"
          }
        }
      }
    }
  }
}

相关问题