Перейти к содержанию

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). Эти же фильтры будут применены к документам, над которыми будет проводиться аггрегация

Ссылки

https://www.elastic.co/guide/en/elasticsearch/reference/7.8/search-aggregations-bucket-filter-aggregation.html


Последнее обновление : 1 июля 2023 г.
Дата создания : 12 июля 2022 г.

Комментарии

Комментарии