2011-02-04 5 views
0

자동 제안 검색어 입력란에 thinking_sphinx를 설정하려고합니다. 각 키 누르기에서 필자는 데이터베이스에서 필드의 현재 텍스트 값에 대한 스핑크스 검색을 수행합니다. min_infix_len을 3으로 설정 했으므로 적어도 3자를 입력 할 때까지 표시가 시작되기를 원하지 않습니다. 문제는 다중 단어 쿼리와 함께 제공됩니다. match_mode => : phrase에도 불구하고, 내가 입력하는 각각의 새 단어는 스핑크스 검색에서 별도의 키워드로 취급되므로 min_infix_len 3을 준수해야합니다.Rails thinking_sphinx 퍼지 검색 문제

그래서 "Lorem Ipsum"을 입력하면 "Lor", "Lore"및 "Lorem"에 대한 자동 제안을 받았습니다. 그렇다면 "Lorem I"과 "Lorem IP"에 대한 결과가 없습니다. 그런 다음 "Lorem Ips"를 누르면 다시 결과를 얻습니다.

거래가 무엇입니까? 일치하지 않는 경우 : match_mode => : 문구가 맞다면, 그게 뭐야?

답변

0

나는 min_infix_len이 스핑크스에서 데이터를 인덱싱 할 때만 영향을 준다는 것을 확신합니다. 검색 할 때 전혀 적용되지 않습니다. 그래서 : min_infix_len은 각 단어에 적용되며 구문에는 적용되지 않습니다.

+0

오에 하나 개 이상의 단어의 문자열로 변환이 방법으로 String 클래스를 확장 할 수 있습니다. 나는 min_infix_len을 1로 설정하고 enable_star를 1로 설정 한 다음, 검색하기 전에 별표를 텍스트 필드 값에 추가하여 원하는 부분을 완성했습니다. – herpderp

1

당신은 별 검색 문자열

def to_star_search 
    "*#{self.strip.gsub(/ +/, '* *')}*" 
end 
관련 문제