2012-04-19 3 views
0

필드를 검색하려고하는데 문제가 있습니다. modelnumbers:"ModeL SX4" 데이터가 없습니다. 같은 필드solr case insensitivity

<fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true" > 
    <analyzer type="index"> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
     <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/> 
     <filter class="solr.LowerCaseFilterFactory" ignoreCase="true"/> 
     <filter class="solr.PorterStemFilterFactory"/> 
     <filter class="solr.StopFilterFactory" ignoreCase="true"/> 
    </analyzer> 

    <analyzer type="query"> 

     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
     <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/> 
     <filter class="solr.LowerCaseFilterFactory" ignoreCase="true"/> 
     <filter class="solr.StopFilterFactory" ignoreCase="true"/> 
     <filter class="solr.PorterStemFilterFactory"/> 
    </analyzer> 
</fieldType> 

하고 사용 :

<arr name="modelnumbers"> 
<str>Model sX4</str> 
</arr> 

내의 schema.xml에 다음을 추가하는 등 가능한 모든 솔루션을 시도 : 같은 분야는 내가 대소 문자를 구분 외모를 만들기 위해 노력하고 있어요
<field name="modelnumbers" type="text" indexed="true" stored="true" multiValued="true" /> 

내 데이터를 여러 번 다시 게시했습니다. 작동 안함. "model sX4"를 검색하면 작동하지만 "ModeL SX4"와 같은 다른 수정은 모두 실패합니다. 결과와 일관성이 없습니다. 또한 다른 필드는 다음과 같습니다. "24AAB3", "24aAB3"을 검색하려고하면. 이것은 또한 작동하지 않습니다.

도와주세요.

+0

발견 된 솔루션. 더 나은 사용하지

+0

소문자로 복사 필드, 어제 해결책이있는 질문이 있었는데, 빠른 검색 – encodes

답변

1

probem은 WordDelimiterFilterFactory에 있습니다. "ModeL SX4"를 "M ode L SX 4"또는 그와 비슷한 것으로 나눌 것입니다. 따라서 LowerCaseFilterFactory를 tokenizer 바로 뒤에 놓으면 괜찮을 것입니다.

+0

그것이 필요하지 않는 한, 나는 한 가지 더 제안을 추가 할 것입니다. 쿼리 및 색인을 위해 하나의 분석기를 사용하십시오. 그것은 무엇이 잘못되었는지 확인하는 데 도움이됩니다. "admin/analysis.jsp"를 확인하여 스키마가 데이터 집합에서 어떻게 작동하는지 확인하십시오. – Fuxi