Elastic Search 7:获取特定字段的不同命中

Elastic Search 7 : Get distinct hits for a specific field

我有一个索引,其中 _source 包含此类字段:

createDate : date,
fileName: string,
status : string,
taskName: string,
taskType : string
...

我想知道是否有可能为每个不同的任务名称获得一次命中(任何命中都可以)。

通过对 taskName 使用聚合,我可以获得所有不同的 taskName 值,但我丢失了有关 taskType 的信息。

我需要一个不同的 taskName 列表及其相应的 taskType。

谢谢!

要包含 taskType 的值,您需要使用 top_hits aggregation

试试下面的查询

{
  "size": 0,
  "aggs": {
    "companies": {
      "terms": {
        "field": "taskName"
      },
      "aggs": {
        "top_ids": {
          "top_hits": {
            "_source": {
              "includes": [
                "taskType"
              ]
            },
            "size": 10
          }
        }
      }
    }
  }
}