Можно использовать следующие параметры: -
- Составное агрегирование : можно объединить несколько источников данных в одном ведре и разрешить разбивку на страницы и сортировку по ним. Он может выполнять линейное разбиение на страницы только с помощью after_key, т.е. вы не можете переходить со страницы 1 на страницу 3. Вы можете получить «n» записей, затем передать возвращенные после ключа и получить следующие «n» записи.
GET index22/_search
{
"size": 0,
"aggs": {
"ValueCount": {
"value_count": {
"field": "id.keyword"
}
},
"pagination": {
"composite": {
"size": 2,
"sources": [
{
"TradeRef": {
"terms": {
"field": "id.keyword"
}
}
}
]
}
}
}
}
Включить раздел : группирует значения поля в число разделов во время запроса и обрабатывает только один раздел в каждом запросе. Термин поля равномерно распределен по разным разделам. Таким образом, вы должны знать количество терминов заранее. Вы можете использовать
кардинальное агрегирование , чтобы получить счет
GET index22/_search
{
"size": 0,
"aggs": {
"TradeRef": {
"terms": {
"field": "id.keyword",
"include": {
"partition": 0,
"num_partitions": 3
}
}
}
}
}
Агрегация сортировки по группам : сортирует группы по родительским группам по совокупности. Каждый сегмент может быть отсортирован по его _key, _count или его подгруппам. Это относится только к сегментам, возвращенным из родительского агрегата. Вам нужно будет установить размер термина на 10 000 (максимальное значение) и усечь сегменты в bucket_sort. Вы можете разбивать на страницы, используя from и size, как в запросе. Если у вас есть термины, превышающие 10000, вы не сможете использовать его, поскольку он выбирает только те сегменты, которые возвращены термином.
GET index22/_search
{
"size": 0,
"aggs": {
"valueCount":{
"value_count": {
"field": "TradeRef.keyword"
}
},
"TradeRef": {
"terms": {
"field": "TradeRef.keyword",
"size": 10000
},
"aggs": {
"my_bucket": {
"bucket_sort": {
"sort": [
{
"_key": {
"order": "asc"
}
}
],
"from": 2,
"size": 1
}
}
}
}
}
}
С точки зрения производительности композитное агрегирование - лучший выбор