Rails Sunspot按布尔名称搜索

时间:2014-07-27 22:02:15

标签: ruby-on-rails search solr boolean sunspot

我正在使用太阳黑子搜索和Rails 4并且它工作得非常好,我只有一件事能够解决,经过几天的打击我靠在墙上,我决定在这里问。

我有一个带有一些布尔属性的模型User。我想这样做,以便当我搜索属性名称时,如果属性为true,搜索结果将返回具有该属性的所有对象。

属于字符串并具有实际值的属性除了' true'并且' false'在搜索中工作得很好。

我的用户模型(user.rb):

class User << ActiveRecord::Base

 searchable do
  text :zip, :name, :email
  boolean :cpr
  boolean :first_aid
  boolean :survival_kit
 end

end

我的搜索控制器(search_controller.rb)。我可以搜索两个模型:

class SearchController << ApplicationController

 def search

  @search = Sunspot.search(User, CoolingCenter) do
   fulltext params[:search]
  end

  @results = @search.results

  respond_to do |format|
   format.json { render json: @results}
   format.html { render '_results', layout: true }
  end

 end

end

例如,如果我搜索“cpr&#39;”,搜索结果将是具有以下属性的所有用户:cpr = true。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

尝试在fulltext params[:search]行之后添加条件:

fulltext params[:search]

with :cpr, true

with :first_aid, true

with :survival_kit, true