Я пытаюсь разбить на страницы в указанном поле c, используя термины агрегации с разделами. Проблема в том, что количество возвращаемых терминов для каждого раздела не равно заданному мною параметру размера.
Я выполняю следующие шаги:
Получите количество различных уникальных значений для поля с агрегацией "кардинальности". По моим данным, результат равен 21.
. На веб-странице пользователь хочет отобразить таблицу с 10 элементами на странице.
if unique_values % page_size != 0:
partitions_number = (unique_values // page_size) + 1
else:
partitions_number = (unique_values // page_size)
Чем я делаю этот простой запрос:
POST my_index/_search?pretty
{
"size": 0,
"query": {
"bool": {
"filter": [
{
"match": {
"field_to_paginate": "foo"
}
}
]
}
},
"aggs": {
"by_pchostname": {
"terms": {
"size": 10,
"field": "field_to_paginate",
"include": {
"partition": 0,
"num_partitions": 3
}
}
}
}
}
Я ожидаю получить 10 результатов. Но если я выполню запрос, у меня будет только 7 результатов. Что мне здесь не хватает? Нужно ли здесь использовать другое решение?
В качестве примечания: я не могу использовать составное агрегирование, потому что мне нужно отсортировать результаты по doc_count по всему набору данных.