Я пытаюсь выполнить запрос в elasticsearch, чтобы получить повтор определенных пользователей с определенного диапазона дат. результаты должны быть сгруппированы по USERID и сортируют на поле trackTime, я могу использовать группу с помощью агрегации, но я не в состоянии сортировать агрегирование ведра на tracktime, я записываю следующий запросСортировка elasticsearch top hits results
GET _search
{
"size": 0,
"query": {
"filtered": {
"query": {
"bool": {
"must": [
{
"range": {
"trackTime": {
"from": "2016-02-08T05:51:02.000Z"
}
}
}
]
}
},
"filter": {
"terms": {
"userId": [
9,
10,
3
]
}
}
}
},
"aggs": {
"by_district": {
"terms": {
"field": "userId"
},
"aggs": {
"tops": {
"top_hits": {
"size": 2
}
}
}
}
}
}
что еще нужно я должен использовать, чтобы отсортировать результаты лучших хитов? Спасибо заранее ...
Спасибо человеку, что это работает супер хорошо. Вы делаете мой день ... –
@Richa Я в подобном сценарии. Мое имя поля для сортировки при агрегации Top_hits похоже на 2 уровня глубже. например: «sort»: {«user.name.fieldName»: {«order»: «desc»}} .. его не работает в таком сценарии. Есть предположения..? – DecKno
@Arivazhagan Jeganathan: Он работает для меня. Является ли тип пользователя «вложенным»? – Richa