太阳黑子solr:搜索“Everything”/ wildcard

时间:2013-10-15 17:40:58

标签: ruby-on-rails search solr sunspot

如何使用通配符搜索Sunspot solr? 使用*不起作用,我想返回所有教育结果。

教育是一个可以存在“全部”,“高”,“低”的集合,所以现在我的想法是将其从搜索块中移除,如果它的“全部”

with(:orientation, params[:orientation])  
if params[:orientation].present? unless params[:orientation] == "all"

一定是更好的方式吗?

搜索区块:

search = Sunspot.search Session do

      if params[:education].present?
        if params[:education] == "all"
          # Use a wildcard here
          #with(:education, *)
        end
      end
end

2 个答案:

答案 0 :(得分:1)

实际上,最好的方法是删除查询。 它更清洁,更快,因为发动机运行条件较少。 所以:

with(:orientation, params[:orientation])  
if params[:orientation].present? unless params[:orientation] == "all"

确实是最好的解决方案。

答案 1 :(得分:0)

的解决方案:

我终于找到了问题,我的开发数据库中有一些问题,其中Profile没有匹配。 +匹配表中缺少一些profile_id,修好后再重新编好了。