我有一个具有唯一的数字运行ID的文档集合,我想找到运行ID最高的文档。

我可以做两个查询。

首先,我可以找到最高的运行ID:

{
    "size": 0,
    "aggregations": {
      "latest_run_id": {
        "aggregations": {
          "latest_run_id": {
            "max": {"field": "run_id"}
          }
        }
      }
    }
}

其次,我可以找到具有该运行ID的文档:
{
    "filter": {
        {"term": {"run_id": latest_run_id}}
    }
}

有没有办法我可以通过一个查询做到这一点?

最佳答案

您可以通过组合“sort”和“size”来实现:

`{
  "filter" : {
    "match_all" : { }
  },
  "sort": [
    {
      "run_id": {
        "order": "desc"
      }
    }
  ],
  "size": 1
}`

这将返回具有最高run_id的记录

10-08 04:44