按类筛选太阳黑子搜索

时间:2014-08-16 17:14:51

标签: ruby-on-rails-4 solr sunspot

我已经设置了一个太阳黑子/ solr搜索,其轨道就像魅力一样:

# run the search
search_results = Sunspot.search Project, Question, User, Requests do
  fulltext params[:search]

  paginate page: params[:page], per_page: 10
end

按给定的类过滤搜索结果可能会很酷。例如,在params[:class]这样的网址中有一个参数,如果搜索只包含该特定类的结果(项目,问题,用户,请求...),那就太棒了。

我无法弄清楚从哪里开始。

希望有人能帮助我!

1 个答案:

答案 0 :(得分:0)

知道了。您需要做的就是将类作为字符串添加到可搜索的块中:

# solr search
searchable do
  text :firstname, :lastname, :email, :position
  integer :account_id
  string :klass
end

def klass
  return self.class.to_s.downcase
end

之后,您可以按类(klass)

进行过滤
# run the search
search_results = Sunspot.search Project, Question, User do
  fulltext params[:search]
  with :account_id, params[:account_id]
  with :klass, "question"

  paginate page: params[:page], per_page: 10
end