Агрегирование максимального значения в корзине
Агрегирование по конвейеру, которое определяет корзину(ы) с максимальным значением указанного метрического показателя в исходном агрегировании и выводит как значение, так и ключ(и) корзины(корзин). Указанный метрический показатель должен быть числовым, а исходное агрегирование — агрегированием по нескольким корзинам.
Синтаксис
Агрегирование max_bucket выглядит следующим образом:
{
"max_bucket": {
"buckets_path": "the_sum"
}
} Таблица 57. max_bucket Параметры
| Имя параметра | Описание | Обязательно | Значение по умолчанию |
|---|---|---|---|
| Путь к корзинам, для которых нужно найти максимальное значение (см. | Обязательно | |
| Политика обработки пробелов в данных (см. Обработка пробелов в данных для получения дополнительной информации) | Необязательно |
|
| формат для применения к выходному значению этого агрегирования | Необязательно |
|
Следующий фрагмент кода вычисляет максимальное значение общего sales за месяц:
POST /sales/_search
{
"size": 0,
"aggs": {
"sales_per_month": {
"date_histogram": {
"field": "date",
"calendar_interval": "month"
},
"aggs": {
"sales": {
"sum": {
"field": "price"
}
}
}
},
"max_monthly_sales": {
"max_bucket": {
"buckets_path": "sales_per_month>sales"
}
}
}
} |
|
И вот возможный ответ:
{
"took": 11,
"timed_out": false,
"_shards": ...,
"hits": ...,
"aggregations": {
"sales_per_month": {
"buckets": [
{
"key_as_string": "2015/01/01 00:00:00",
"key": 1420070400000,
"doc_count": 3,
"sales": {
"value": 550.0
}
},
{
"key_as_string": "2015/02/01 00:00:00",
"key": 1422748800000,
"doc_count": 2,
"sales": {
"value": 60.0
}
},
{
"key_as_string": "2015/03/01 00:00:00",
"key": 1425168000000,
"doc_count": 2,
"sales": {
"value": 375.0
}
}
]
},
"max_monthly_sales": {
"keys": ["2015/01/01 00:00:00"],
"value": 550.0
}
}
} |
|
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-aggregations-pipeline-max-bucket-aggregation.html