Рельсы эластичный поиск-модель нескольких параметров запроса
Я хочу запустить несколько параметров поиска с помощью драгоценного камня эластичного поиска, как показано ниже. Прежде чем использовать gem tyre для поиска записей, используя несколько параметров запросов.
Моя модель:
class Book < ApplicationRecord
include Tire::Model::Search
include Tire::Model::Callbacks
mapping do
indexes :id, type: 'integer'
indexes :title
indexes :author
indexes :category
indexes :price
end
def self.search(params)
tire.search(load: true) do
query do
boolean do
must { string params[:title] } if params[:title].present?
must { string params[:author] } if params[:author].present?
must { string params[:category] } if params[:category].present?
should { range :price, { gte: params[:price_range_min], lte:
params[:price_range_max] } } if
params[:price_range_min].present?
&& params[:price_range_max].present?
end
end
end
end
end
Мой контроллер:
class BookController < ApplicationController
def index
@books = Book.search(params)
@books =
Kaminari.paginate_array(@books).page(params[:page]).per(10)
end
end
Я следовал за этой документацией asticsearch -model, но я получаю результаты только для двух параметров поля.
Любая помощь?