Агрегирование min_bucket
Это агрегирование по конвейеру, которое определяет ведро(а) с минимальным значением заданного метрики в связанном агрегировании и выводит как значение, так и ключ(и) ведра(ов). Указанная метрика должна быть числовой, а связанное агрегирование должно быть многоведерным.
Синтаксис
Агрегация min_bucket выглядит следующим образом:
{
"min_bucket": {
"buckets_path": "the_sum"
}
} Таблица 65. min_bucket Параметры
| Имя параметра | Описание | Обязательный | Значение по умолчанию |
|---|---|---|---|
| Путь к ведрам, для которых мы хотим найти минимальное значение (см. | Обязательный | |
| Политика применения, когда в данных обнаруживаются разрывы (см. Обработка разрывов в данных для более подробной информации) | Необязательный |
|
| Шаблон DecimalFormat для выводимого значения. Если указано, отформатированное значение возвращается в свойстве | Необязательный |
|
Следующий фрагмент вычисляет минимум для общей ежемесячной sales:
resp = client.search(
index="sales",
size=0,
aggs={
"sales_per_month": {
"date_histogram": {
"field": "date",
"calendar_interval": "month"
},
"aggs": {
"sales": {
"sum": {
"field": "price"
}
}
}
},
"min_monthly_sales": {
"min_bucket": {
"buckets_path": "sales_per_month>sales"
}
}
},
)
print(resp) response = client.search(
index: 'sales',
body: {
size: 0,
aggregations: {
sales_per_month: {
date_histogram: {
field: 'date',
calendar_interval: 'month'
},
aggregations: {
sales: {
sum: {
field: 'price'
}
}
}
},
min_monthly_sales: {
min_bucket: {
buckets_path: 'sales_per_month>sales'
}
}
}
}
)
puts response const response = await client.search({
index: "sales",
size: 0,
aggs: {
sales_per_month: {
date_histogram: {
field: "date",
calendar_interval: "month",
},
aggs: {
sales: {
sum: {
field: "price",
},
},
},
},
min_monthly_sales: {
min_bucket: {
buckets_path: "sales_per_month>sales",
},
},
},
});
console.log(response); POST /sales/_search
{
"size": 0,
"aggs": {
"sales_per_month": {
"date_histogram": {
"field": "date",
"calendar_interval": "month"
},
"aggs": {
"sales": {
"sum": {
"field": "price"
}
}
}
},
"min_monthly_sales": {
"min_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
}
}
]
},
"min_monthly_sales": {
"keys": ["2015/02/01 00:00:00"],
"value": 60.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/8.17/search-aggregations-pipeline-min-bucket-aggregation.html