Один запрос для поиска документа с наибольшим значением для некоторого поля
У меня есть коллекция документов с уникальными идентификаторами числового запуска, и я хочу найти документ с наивысшим идентификатором запуска.
Я могу выполнить эти два запроса.
Во-первых, я могу найти наивысший идентификатор запуска:
{
"size": 0,
"aggregations": {
"latest_run_id": {
"aggregations": {
"latest_run_id": {
"max": {"field": "run_id"}
}
}
}
}
}
Во-вторых, я могу найти документ с этим идентификатором запуска:
{
"filter": {
{"term": {"run_id": latest_run_id}}
}
}
Есть ли способ сделать это с помощью одного запроса?
Ответы
Ответ 1
Вы можете выполнить это, объединив "сортировку" и "размер":
`{
"filter" : {
"match_all" : { }
},
"sort": [
{
"run_id": {
"order": "desc"
}
}
],
"size": 1
}`
Это вернет запись с наивысшим run_id