私はsunspot
を使用しています。 LIKE
クエリ(LIKE %q%
)を実行するにはどうすればよいですか?Sunspot `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
それは基本的に以下の黒点の検索ハッシュ生成:LIKE %query%
を実装のない簡単な方法はありません場合は
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
とのSOLRロジックを生成しますか?
「部分的に私のために働く」とはどういう意味ですか? :)実際問題は、検索がうまくいかない、またはメソッドエイリアスがほしいということですか? –
また、「より単純な方法」とはどういう意味ですか? .starting_with( 'sta')より簡単なことは何ですか? –
あなたの答えをお寄せいただき、ありがとうございました。以下の要点で、私が部分的に私のために働く理由を説明します。おかげでhttps://gist.github.com/8257e7c4e512aa8a45df! – jpemberthy