Рельсы эластичный поиск-модель нескольких параметров запроса

Я хочу запустить несколько параметров поиска с помощью драгоценного камня эластичного поиска, как показано ниже. Прежде чем использовать 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, но я получаю результаты только для двух параметров поля.

Любая помощь?

0 ответов

Другие вопросы по тегам