如何搜索elasticsearch并按值计算行/结果

时间:2021-03-02 21:28:32

标签: elasticsearch

我有一堆消息,每行都有一个唯一的 ID (xxx-xxxx-xxxxxxx-xxx)。我想搜索并计算每条唯一消息的数量。

GET _count "OR" GET _search
{
  "query": {
    "match": {
      "message": {
        "query": "limit for"
        }
    }
  }
}

结果:

limit for AAA-AAA-AAA-AAA has 10 entries
limit for BBB-BBB-BBB-BBB has 30 entries
limit for CCC-CCC-CCC-CCC has 1000 entries

1 个答案:

答案 0 :(得分:0)

假设 (1) 您不想为每个要计算的唯一 ID 创建一个查询,(2) message 字段始终包含您要查找的信息(即“限制”) , (3) message 字段的类型为 keyword,则可以运行以下聚合:

GET name_of_your_index/_search?size=0
{
  "aggs": {
    "group_by_message": {
      "terms": {
        "field": "message",
        "size": 10000
      }
    }
  }
}

其中大小值 10000 是低于唯一消息值的最大预期数量的任意数字。

相关问题