Searchkick:搜索同一查询中的多个特定字段

时间:2016-01-14 09:59:04

标签: ruby-on-rails elasticsearch searchkick

我正在尝试在我的rails应用程序中进行高级搜索,但我遇到了一些空的参数问题

类产品<的ActiveRecord :: Base的     searchkick

当我填写搜索和大小字段时,每个工作,但如果我留下大小字段空白没有显示在结果...

可能我正在做一些愚蠢的事情

我使用了一堆IF:

def index

if params[:search].present?
  if params[:size].present?
    @products = Product.search params[:search], where: {size: params[:size]}
  else
    @products = Product.search params[:search]
  end      
else
  if params[:size].present?
    @products = Product.search "*", where: {size: params[:size]}
  else
    @products = Product.search "*"
  end

end

但可能那不是最好的approuch,记住我会搜索至少5个其他领域......

搜索,尺寸,品牌,颜色,Store.state,价格,评级等...

对不起我的英语,我希望你们理解我的问题,并能够帮助我......

2 个答案:

答案 0 :(得分:0)

我的蠢事:

<tr>

答案 1 :(得分:0)

找到解决方案

Setting up Facets in Elasticsearch with Searchkick gem in Rails 4.1

 query = params[:query].presence || "*"
 conditions = {}
 conditions[:state] = params[:state] if params[:state].present?
 conditions[:city] = params[:city] if params[:city].present?

 movies = Movie.search query, where: conditions