2012-04-19 8 views
0

は、私は何のデータを取得していない modelnumbers:"ModeL SX4"のようなフィールドを検索しようとしている問題を抱えています。私のような大文字小文字を区別しないに見えるようにしようとしている分野:Solrのケース非感受性

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

は私のschema.xmlに、次の追加などのすべての可能な解決策を試してみました:

<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> 

などのフィールドでそれを使用して:

<field name="modelnumbers" type="text" indexed="true" stored="true" multiValued="true" /> 

データを何度も再公開しました。働いていない。 "model sX4"を検索すると機能しますが、 "ModeL SX4"などの変更はすべて失敗しています。結果との一貫性はありません。また別のフィールドは次のようになります: "24AAB3"、 "24aAB3"を検索しようとすると。これはまた動作しません。

助けてください。

+0

が見つかりました。 –

+0

コピーフィールドを小文字に<クラス=「solr.LowerCaseTokenizerFactory」/トークナイザ>は、その優れたトンの使用は、それが必要でない限り、私は、もう一つの提案を追加することへの迅速な検索 – encodes

答えて

1

あなたprobemはWordDelimiterFilterFactoryです。 "ModeL SX4"を "M ode L SX 4"などに分割します。だから、LowerCaseFilterFactoryをtokenizerの直後に置いてください。

+0

を持って、溶液で昨日質問がありました1つのアナライザーを使用してクエリと索引付けを行います。それは何がうまくいかないかを確認するのに役立ちます。また、 "admin/analysis.jsp"を確認して、あなたのスキーマがあなたのデータセットでどのように動作するかを確認してください。 – Fuxi

関連する問題