获取具有 "greatest" 字段值的文档的更快查询过滤器?

Faster query filter for getting a document with "greatest" field value?

在 Elasticsearch 索引中,我有包含字段的文档:fooIdfooField

我想获取具有给定 fooId 值但最大值 fooField 的文档。现在,我有一个像这样的聚合的过滤查询:

"aggs": {
    "topHits_agg": {
        "top_hits": {
            "sort": [{
                "fooField": {
                    "order": "desc"
                }
            }],
            size: 1
        }
    }
}

然而,表现并不好。有什么办法可以让它变得更好吗?

如果我理解正确你不需要 aggregation,你可以 sortfooField 上直接像这样

GET your_index/_search
{
  "query": {
    "filtered": {
      "filter": {
        "term": {
          "fooId": "your_specific_id"
        }
      }
    }
  },
  "sort": [
    {
      "fooField": {
        "order": "desc"
      }
    }
  ],
  "size": 1
}