Sunspot consulta `LIKE`
Estoy usandosunspot
. ¿Cómo puedo ejecutar unaLIKE
consulta LIKE %q%
)? Me gustaría hacer algo como esto:
@search = Sunspot.search(User) do |q|
q.text_fields { with(:company_name).like(params[:q]) }
end.results
en lugar de
@search = Sunspot.search(User) do |q|
q.text_fields { with(:company_name).starting_with(params[:q]) }
end.results
que en parte funciona para mí. Revisando elsunspot
código, encontré este fragmento de código:
class StartingWith < Base
private
def to_solr_conditional
"#{solr_value(@value)}*"
end
end
Básicamente genera el siguiente hash de búsqueda de manchas solares:
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*"]}
En caso de que no haya una forma más sencilla de implementarLIKE %query%
, ¿cómo debo crear una nueva claseLike
con el métodoto_solr_conditional
que genera la lógica SOLR?