Multiple Faceted Filters with Elasticsearch
How can I apply multiple filters to a face (with tires)? I have a code:
facet "packages" do
terms :package
facet_filter :terms, producer: [*params[:producer]] if params[:producer].present?
facet_filter :terms, category_id: [*params[:category_id]] if params[:category_id].present?
end
But only the last filter seems to apply. But I need both.
+3
source to share
2 answers
my_filter = []
my_filter << {:term => {:producer => params[:producer] }} if params[:producer].present?
my_filter << {:term => {:category_id => params[:category_id] }} if params[:category_id].present?
facet "packages" do
terms :package
facet_filter(:and, my_filter) if my_filter.present?
end
+1
source to share