2012-03-02 7 views
1

나는 동의어가 제대로 작동 얻을 것을 시도하고, 나는 결과가 어떤 결과를 생성하지 않습니다 층 사물함을 찾고로했다 낸다SOLR : 설정 인덱스 시간 동의어

현재 스토리지 사물함 검색 저장 사물함 바닥 사물함을 매핑 할 . 나는 인덱스 시간 동의어에 대해 다음 설정이 있습니다

<fieldType name="text" class="solr.TextField" positionIncrementGap="100" omitNorms="false"> 
    <analyzer type="index"> 
     <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" tokenizerFactory="KeywordTokenizerFactory"/> 
     <charFilter class="solr.HTMLStripCharFilterFactory"/> 
     <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" /> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 
     <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt" /> 
     <filter class="solr.LowerCaseFilterFactory" /> 
     <filter class="solr.RemoveDuplicatesTokenFilterFactory" /> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     </analyzer> 
...... 

을 그리고 내 synonyms.txt은 다음과 같습니다 : 내가 잘못 뭐하는 거지

floor locker=>storage locker 

?

+0

검색어는 어떤 모양입니까? –

+0

q = {! dismax} 플로어 락커 – dorgan

+0

정말 여기에 댓글을 달려면 Dismax 쿼리에 대해 충분히 알지 못하지만 ... 검색하지 않으므로 동의어가 인식되지 않을 수도 있습니다 정확한 구절? –

답변

1

분석 체인의 순서가 잘못되었습니다. 먼저 char 필터를 놓은 다음 tokenizer를 넣어야합니다. 동의어 필터는 바로 뒤에 올 수 있습니다. 필터의 나머지 부분은 올바른 순서 또는 적어도 좋은 순서로되어 있습니다.