私はを使用してsunspot
います。LIKE
クエリを実行するにはどうすればよいですか( LIKE %q%
)?私はこのようなことをしたいと思います:
@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*"]}
より簡単な実装方法がない場合、SOLRロジックを生成するメソッドをLIKE %query%
使用して新しいクラスを作成するにはどうすればよいですか?Like
to_solr_conditional