Filter Aggregation¶
“Однокорзинная” агрегация, которая собирает в корзину документы, соответствующие фильтру. Примерно так:
{
"aggs": {
"with_filter": {
"filter": {
"bool": {
"filter": [
{
"terms": {
"status-tags": [
"active",
"not-so-active",
"unknown"
]
}
},
{
"range": {
"user-reg-date": {
"gte": "00010101",
"lte": "20210729"
}
}
}
]
}
}
}
}
}
Разберем пример. Сначала идёт ключевое слово
"aggs", определяет собственно начало описания агрегации. Дальше вложено имя агрегации, оно НЕ ключевое, и объект. Внутри — тип агрегации "filter", далее объект фильтра. В объект фильтра можно сложить весь объект запроса, который в обычном поиске идет под ключом "query". После фильтра добавляем вложеную агрегацию:{
"aggs": {
"t_shirts": {
"filter": {
"term": {
"type": "t-shirt"
}
},
"aggs": {
"avg_price": {
"avg": {
"field": "price"
}
}
}
}
}
}
По идее, все агрегации над фильтрованными данными будут вложенными к этой, либо, если она вложенная — применяем фильтр к содержимому каждой корзины внешней агрегации.
Есть альтернатива — добавить агрегации к запросу
query, если в нем есть фильтры (filter). Эти же фильтры будут применены к документам, над которыми будет проводиться аггрегация
Ссылки¶
Последнее обновление :
1 июля 2023 г.
Дата создания : 12 июля 2022 г.
Дата создания : 12 июля 2022 г.