小编典典

单个查询以查找某个字段中具有最大价值的文档

elasticsearch

我有一个具有唯一的数字运行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}}
    }
}

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


阅读 246

收藏
2020-06-22

共1个答案

小编典典

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

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

这将返回最高的记录 run_id

2020-06-22