나는 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.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%
을 구현하는 더 간단한 방법이 없다 :
class StartingWith < Base
private
def to_solr_conditional
"#{solr_value(@value)}*"
end
end
그것은 기본적으로 다음과 같은 태양 흑점 검색 해시를 생성하십시오 sunspot
코드 검토, 나는이 코드 조각을 발견 SOLR 로직을 생성하는 to_solr_conditional
메서드를 사용하는 새로운 클래스 Like
?
'부분적으로 나를 위해 일하는'은 무엇을 의미합니까? :) 사실, 문제는 검색이 작동하지 않거나 메서드 별칭을 원한다는 것입니다. –
또한 '더 단순한 방법'으로 무엇을 의미합니까? .starting_with ('sta')보다 더 간단 할 수있는 것은 무엇입니까? –
안녕하세요 블라드, 답변 주셔서 감사합니다. 다음 요점에서 왜 부분적으로 저에게 도움이되는지 설명 드리겠습니다. 고마워요, https://gist.github.com/8257e7c4e512aa8a45df! – jpemberthy