当前位置: 首页 > 面试题库 >

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

贺景铄
2023-03-14
问题内容

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

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


问题答案:

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

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

汽车术语汇总:

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


 类似资料:
  • 我试图解决一个问题,我必须在搜索中得到明确的结果。 当我对最喜欢的汽车“法拉利”执行术语查询时。我得到两个名为ABC的结果。在这种情况下,我只是希望返回的结果应该是一个。所以我的要求是,如果我可以应用一个不同的on name字段来接收一个1结果。 谢啦

  • 我编写了一些aggs查询来获取总计(sum)和唯一计数。但结果有点混乱。 唯一值大于doc_count。 可能吗? 我知道基数aggs是实验性的,可以得到不同值的近似计数 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-metrics-cardinality-aggr

  • 问题内容: 我是Oracle的新手。我有一个Oracle表有三列:,和。在第三列中的行具有值,或 。 我想使用count运行查询,以显示可维修的数量,正在维修的数量,针对每个项目类别的谴责数量。 我想运行类似的东西: 我无法在计数内运行内部查询。 这是我希望结果集看起来像的样子: 问题答案: 您可以在COUNT函数中使用CASE或DECODE语句。 输出:

  • 问题内容: 我在elasticsearch中拥有大型文档存储,并希望检索不同的过滤器值以显示在HTML下拉列表中。 一个例子是像 下拉列表应包含部门列表,即IT,客户和管理部门。 请问有什么好心的人向我指出正确的方向,以便从Elasticsearch检索不同的部门列表吗? 谢谢 问题答案: 这是聚合(文档)的工作。 您可以使用以下不同的值: 在您的示例中,输出: 另外两个注意事项: 设置为0会将最

  • 问题内容: 我们正在尝试在Elasticsearch中找到不同的内部对象。这将是我们案例的最小示例。我们一直坚持下面的映射(更改类型或索引或添加新字段不会有问题,但结构应保持原样): 假设我们有以下示例数据: 当查询街道“贝克街”(以及所需的任何其他选项)时,我们希望获得以下列表: 格式并不重要,但是我们应该能够解析名字和姓氏。只是,由于我们的实际数据集要大得多,因此我们需要使输入项不同。 我们正

  • 本文向大家介绍获取不同的值并在MySQL中计数,包括了获取不同的值并在MySQL中计数的使用技巧和注意事项,需要的朋友参考一下 要获取不同的值并计算它们,可以使用GROUP BY子句。 语法如下 为了理解上述语法,让我们创建一个表。创建表的查询如下 使用insert命令在表中插入一些记录。查询如下- 使用select语句显示表中的所有记录。查询如下- 输出如下 现在,让我们获取不同的值并使用以下查