一尘不染

在Elasticsearch中找到不同的值,而不是不同的计数

elasticsearch

Elasticsearch文档

建议 *他们的一段代码

*文件固定

GET /cars/transactions/_search?search_type=count
{
  "aggs": {
    "distinct_colors": {
      "cardinality": {
        "field": "color"
      }
    }
  }
}

对应于sql查询

SELECT DISTINCT(color) FROM cars

但实际上对应于

SELECT COUNT(DISTINCT(color)) FROM cars

我不想知道我有多少不同的值,但是什么是不同的值。有人知道如何实现吗?


阅读 386

收藏
2020-06-22

共1个答案

一尘不染

在字段上使用术语汇总color。并且您需要注意如何分析要获取不同值的字段,这意味着您需要确保在建立索引时没有对它进行标记,否则聚合中的每个条目都是一个不同的术语,属于字段内容。

如果您仍然希望令牌化并使用terms聚合,则可能需要查看not_analyzed该字段的索引类型,并可能使用多字段

汽车术语汇总:

GET /cars/transactions/_search?search_type=count
{
  "aggs": {
    "distinct_colors": {
      "terms": {
        "field": "color",
        "size": 1000
      }
    }
  }
}
2020-06-22