我正在使用sunspot
。我如何運行LIKE
查詢(LIKE %q%
)?我願做這樣的事情:而不是太陽黑子`LIKE`查詢
@search = Sunspot.search(User) do |q|
q.text_fields { with(:company_name).like(params[:q]) }
end.results
:
@search = Sunspot.search(User) do |q|
q.text_fields { with(:company_name).starting_with(params[:q]) }
end.results
這部分對我的作品。回顧sunspot
代碼,我發現這段代碼:
class StartingWith < Base
private
def to_solr_conditional
"#{solr_value(@value)}*"
end
end
它主要產生以下太陽黑子搜索哈希:
Sunspot.search(User) do |q|
q.text_fields { with(:company_name).starting_with("sta")} }
end
=> Sunspot::Search:{:q=>"*:*", :fq=>["type:User", "company_name_text:sta*"]}
萬一有實施LIKE %query%
沒有更簡單的方法,我應該如何創建新類Like
與方法to_solr_conditional
它生成SOLR邏輯?
你的意思是「部分爲我工作」? :)事實上,問題是搜索不起作用,或者你只是想要一個方法別名? – 2011-05-18 17:07:27
另外,你的意思是「不簡單的方式」?什麼比.starting_with('sta')更簡單? – 2011-05-18 17:14:09
嘿弗拉德,感謝您的回答,我將在下面的要點中解釋爲什麼它對我有部分作用。 https://gist.github.com/8257e7c4e512aa8a45df謝謝! – jpemberthy 2011-05-18 18:43:57