문제

ACTS_AS_FERRET를 사용하여 DB에서 매우 간단한 검색을하고 있습니다. 나는 이것을 내 "장소"모델에 넣었다 :

acts_as_ferret :fields => [:name, :city]

그리고 이것은 내 컨트롤러 검색 조치에 있습니다.

@t = Venue.find_by_contents(params[:search]+'~')

그런 다음 결과를 렌더링합니다.

render :text => @t.to_json, :success => true, :status => :ok

빠른 테스트를 실행하면 :

http://localhost:3000/venue/list?search=The

내 로그에서 적절한 쿼리 "~"가 인덱스에서 실행되고 있음을 알 수 있습니다. 그러나 결과는 얻지 못합니다. 나는 이름 필드에 "The"라는 단어가있는 몇 가지 "장소"가 있습니다.

이것은 매우 간단한 검색이며 ACTS_AS_FERRET가 상당히 사용되기 때문에, 나는 그것이 손상되었는지 확인하기 위해 색인을 재건하려고 시도했습니다 .... 주사위 없음

어떤 아이디어?

감사!

도움이 되었습니까?

해결책

예, 흰 족제비는 인덱스를 손상시키는 것으로 잘 알려져 있습니다.

다른 검색 플러그인과 같은 다른 검색 플러그인으로 전환하는 것이 좋습니다 스핑크스 생각. 당신은 할 수 있습니다 그것에 대해 RailScast를보십시오 더 배우기 위해.

다른 팁

문제는 "The"가 스톱워드로 정의된다는 것일 수 있다고 생각합니다. 모든 문서를 반환하기 때문에 색인되지 않은 매우 일반적인 단어입니다. Stopword 목록을 구성 할 수 있습니다.

흰 족제비에 문제가있는 경우 Solr 사용을 고려할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top