如何在太阳黑子中进行“或”搜索?

时间:2014-05-12 08:24:39

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

我正在寻找几种类型的方面,我想要的是,当用户点击该特定类别中的多个过滤器时,结果太阳黑子返回包括与任一选项匹配的所有内容,而不仅仅是都。我试过这个:

@search = ProfileSearch.new(search_params) do
  facet_restriction = with(:grad_year,params[:grad_year])
  facet(:grad_year, :exclude => facet_restriction)
 end

但这似乎根本不起作用?我不是以适当的方式使用多选方面,还是应该考虑做一些完全不同的事情?

任何想法都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

我认为应该是

@search = ProfileSearch.search(search_params) do
  facet_restriction = with(:grad_year,params[:grad_year])
  facet(:grad_year, :exclude => facet_restriction)
 end

答案 1 :(得分:0)

我这样做:

  grad_year_exclusions = []
  if params[:grad_year].present?
    grad_year_exclusions << with(:grad_year).any_of(params[:grad_year])
  end
  grad_year_exclusions.compact!
  grad_year_exclusions = nil if grad_year_exclusions.empty?
  facet(:grad_year, exclude: grad_year_exclusions)

(params [:grad_year]是一个数组)

希望这有帮助。