Searchkick: включение некоторых предложений where в smart_aggs

#ruby-on-rails #elasticsearch #ruby-on-rails-6 #searchkick

#ruby-on-rails #elasticsearch #ruby-on-rails-6 #searchkick

Вопрос:

Как мне использовать некоторые фильтры при использовании aggs , но не другие? Если я использую smart_aggs: false , никакие фильтры не используются при aggs подсчете.

По умолчанию условия where применяются к агрегациям.

 Product.search "wingtips", where: {color: "brandy"}, aggs: [:size]
# aggregations for brandy wingtips are returned
  

Измените это с помощью:

 Product.search "wingtips", where: {color: "brandy"}, aggs: [:size], smart_aggs: false
# aggregations for all wingtips are returned
  

Необходимо разрешить доход некоторым where, но не другим в подсчете

 Product.search "wingtips", where_no_aggs_count: {country_availability: "us"}, where_aggs_count: {color: "brandy"}, aggs: [:size], smart_aggs: false
  

Ответ №1:

Запрос и агрегированные данные связаны в Elasticsearch. Если вам нужны 2 разных контекста, вам придется выполнить 2 разных запроса.