Solr 3.6 を使用してドキュメント コレクション (DBLP) のインデックスを作成します。一部の文書のメタデータはドイツ語です。ウムラウトとアクセントの処理には、ASCIIFoldingFilterFactory を使用します (schema.xml を参照)。
タイトル フィールドにUnterstützungを含むドキュメントがあるにもかかわらず、検索するとtitle:Unterstutzung
いくつかの結果が返されますが、検索すると結果がありません。title:Unterstützung
管理 Web インターフェイスでアナライザーを使用すると、クエリ用語とドキュメント用語がインデックス化され、期待どおりに処理されることが示されます。しかし、クエリにウムラウトがあると、なぜ結果が得られないのでしょうか?
schema.xml の title フィールドの定義:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="1" splitOnCaseChange="1" preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
完全な schema.xml: http://pastebin.com/rQDw30nA
ドキュメントとクエリの両方でのUnterstützungのアナライザー出力: http://pastebin.com/6cxSnGwP (クエリでは、処理された用語unterstutzungが強調表示されます)