Глобальная агрегация
Определяет одну корзину для всех документов в контексте выполнения поиска. Этот контекст определяется индексами и типами документов, по которым выполняется поиск, но не зависит от самого запроса на поиск.
Глобальные агрегаторы могут быть только на верхнем уровне, так как нет смысла встраивать глобальный агрегатор в другую агрегацию по корзинам.
Пример:
POST /sales/_search?size=0
{
"query": {
"match": { "type": "t-shirt" }
},
"aggs": {
"all_products": {
"global": {},
"aggs": {
"avg_price": { "avg": { "field": "price" } }
}
},
"t_shirts": { "avg": { "field": "price" } }
}
} | У агрегации | |
| Под-агрегации, зарегистрированные для этой агрегации |
Вышеприведенная агрегация демонстрирует, как вычислить агрегации (avg_price в данном примере) по всем документам в контексте поиска, независимо от запроса (в нашем примере это будет вычисление средней цены всех продуктов в нашем каталоге, а не только "рубашек").
Ответ на данную агрегацию:
{
...
"aggregations": {
"all_products": {
"doc_count": 7,
"avg_price": {
"value": 140.71428571428572
}
},
"t_shirts": {
"value": 128.33333333333334
}
}
} | Количество документов, которые были агрегированы (в нашем случае, все документы в контексте поиска) | |
| Средняя цена всех продуктов в индексе | |
| Средняя цена всех футболок |
© 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-bucket-global-aggregation.html