Агрегации в Elasticsearch: сегментное агрегирование
Агрегаты сегментов (bucket aggregations) не вычисляют метрики по полям, как агрегаты метрик, а вместо этого создают сегменты документов. Каждый сегмент связан с критерием (в зависимости от типа агрегирования), который определяет, "попадает" ли в него документ в текущем контексте. Другими словами, сегменты эффективно определяют наборы документов. Помимо самих сегментов агрегаты сегментов также вычисляют и возвращают количество документов, которые "попали" в каждый сегмент.
Агрегаты сегментов, в отличие от агрегатов метрик, могут содержать субагрегации. Эти субагрегации будут объединены для сегментов, созданных их "родительской" агрегацией сегментов.
Существуют разные агрегаторы сегментов, у каждого из которых своя стратегия "сегментирования". Некоторые определяют один сегмент, некоторые определяют фиксированное количество нескольких сегментов, а третьи динамически создают сегменты в процессе агрегации.
Максимальное количество сегментов, разрешенное в одном ответе, ограничено параметром динамического кластера search.max_buckets. По умолчанию 65536. Запросы, которые пытаются вернуть больше лимита, завершатся ошибкой с исключением.
Читайте также:
Комментарии
Отправить комментарий