Возможно, это немного поможет:
"aggregations": {
"apiSalesRepUser": {
"terms": {
"field": "userName",
"size": 9999 ---> add here a bigger size
}
},
"aggregations": {
"limitBucket": {
"bucket_sort": {
"sort": [],
"from": 10,
"size": 20,
"gap_policy": "SKIP"
}
}
}
}
Я не уверен, какое значение вкладывать в термин размер. Я бы предложил поставить разумное значение. Это ограничивает первоначальную агрегацию, затем второй gg limitBucket снова ограничит термин gg. Это, вероятно, все равно загрузит в память все документы, которые вы ограничили в терминах агг. Вот почему это зависит от вашего сценария, если разумно не получить все результаты (т.е. если у вас есть десятки тысяч). То есть вы выполняете поиск в Google, где вам не нужно переходить на страницу 1000.
По сравнению с альтернативным получением данных на стороне клиента, это может сэкономить вам некоторую передачу данных из ES, но, как я уже сказал, взвешивайте это осторожно, поскольку он загружает все много данных в память ES, и у вас могут быть проблемы с памятью в ElasticSearch.
person
andreyro
schedule
02.04.2020
from
? ( эластичный .co/guide/en/elasticsearch/reference/current/ внутри агрегации) - person Utopik   schedule 02.04.2015