Я пытаюсь сортировать агрегированный результат, применяя другое агрегирование, которое суммирует, а затем применяя порядок, спустившись к этой сумме.Порядок по сумме агрегации бросает ошибку в упругом поиске
Если я попробую, как показано ниже, результат агрегации будет отсортирован по количеству документов.
"order": {
"revrsenestedowners": "desc"
}
Ниже приведено описание проблемы, стоящей перед лицом. (имена полей меняются только для иллюстрации проблемы)
«машины» - это мой вложенный объект, но «владельцы» не вложены и принадлежат к родительскому объекту.
Мне нужно получить 10 наименований машин по числу владельцев компьютеров (требуется сумма, поскольку объект-владелец является списком и может иметь более одного значения).
{
"query": {
"range": {
"createdDate": {
"gte": "2015-04-28T00:00:00",
"lte": "2015-05-01T23:59:59"
}
}
},
"aggs": {
"nestedagg": {
"nested": {
"path": "machines"
},
"aggs": {
"terms": {
"terms": {
"field": "machines.machineName",
"size": 10,
"order": {
"sumowners": "desc"
}
},
"aggs": {
"revrsenestedowners": {
"reverse_nested": {},
"aggs": {
"sumowners": {
"sum": {
"field": "owners.machinesCount"
}
}
}
}
}
}
}
}
}
}
Мне требуется заказ на сумму, а не заказ количества документов. для того, чтобы работать, я, возможно, потребуется что-то вроде:
"order": {
"revrsenestedowners.sumowners": "desc"
}
Есть ли способ добиться того, что я ищу.
Или это ограничение с эластичным поиском? или ошибка?
я застрял и действительно признателен за любую помощь