2013-10-15 81 views
0

在Sunspot中如何搜索通配符? 使用*不起作用,我想返回所有教育結果。sunspot solr:搜索「Everything」/通配符

教育是存在可以收集「全部」,「高」,「低」,所以現在我的想法是從搜索塊中刪除它,如果它的「全部」

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 

回答

1

最好的辦法其實就是像你說的刪除查詢。 它更乾淨,速度更快,因爲發動機的運行條件更少。 所以:

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

確實是最好的解決方案。

0

解決方案:

我終於發現了問題,我在開發數據庫的人不得不在那裏檔案不具有匹配的一些問題。 +在修復reindex後,匹配表中的一些缺少profile_id。