2013-04-30 2 views
3

나는 내 Rails 3.0 앱을 위해 Solr과 Sunspot gem을 설치했다.Solr과 흑점으로 퍼지 검색

제 목표는 퍼지 검색입니다. 예를 들어, "Chatuea Marguxa"라는 검색어를 "Château Margaux"로 검색하고 싶습니다.

사실 똑같은 정확한 단어 만 있기 때문에 퍼지가 전혀 작동하지 않습니다.

내 모델 :

내 컨트롤러
searchable do 
    text :winery 
    end 

: 나는 시도

search = Wine.search do 
    fulltext 'Chatuea Marguxa' 
    end 

SOLR 스키마, ngrams와는 :

<fieldType name="text" class="solr.TextField" omitNorms="false"> 
    <analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.StandardFilterFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15"/> 
    </analyzer> 

나는 또한 이중 메타 폰으로 시도 :

<analyzer> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.StandardFilterFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <filter class="solr.PorterStemFilterFactory"/> 
     <filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/> 
     </analyzer> 

두 경우 모두 응답이 0입니다. (물론 색인을 다시 생성 한 후에).

내가 뭘 잘못 했니?

+0

음운 필터로 충분하지 않은 경우 맞춤법 검사/수정이 필요합니다. –

+0

어떤 도구를 사용할 수 있습니까? 나는 이해하지 못했다. –

답변

0

일부 밝혀 주위를 검색 fuzzily 보석 :

Anecdotical 벤치 마크 : 위치 (1GB의 데이터에 대한 3.2M 기록), 내 개발 컴퓨터에 (2011 년 맥북의 우리의 전체 GeoNames을 파생 테이블에 대해) 프로 상위 10 일치하는 레코드를 검색

는 레코드를 변경 메모리 오버 헤드 (의 풋 프린트 3MS ± 2 일 때 모든 기록에 대한 인덱스가 DB 조회 오버 10 분 정도 소요 제조 6ms가 ± 1 얻어trigrams 테이블 인덱스)는 약 300MB입니다.