我们使用 Solr 3.6 来索引文档集合 (DBLP)。一些文件的元数据是德文的。为了处理元音变音和重音,我们使用 ASCIIFoldingFilterFactory(参见 schema.xml)。
搜索title:Unterstutzung
多个结果时返回,但搜索时title:Unterstützung
没有结果,即使有文档在其标题字段中有Unterstützung 。
在管理 Web 界面中使用分析器显示查询词和文档词已按预期编入索引和处理。但是,当查询中有变音符号时,为什么我们没有得到任何结果?
schema.xml 中标题字段的定义:
<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突出显示)