我们使用Solr 3.6来索引文档集合(DBLP)。一些文件的元数据是德文的。为了处理变音和重音,我们使用ASCIIFoldingFilterFactory(请参阅schema.xml)。使用Solr处理变音符号和重音符号
当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被突出显示)
你怎么搜索?也许客户端的编码会改变你期望的行为? –
我正在使用Solr管理Web界面和SolrJ Java API进行搜索。 – problemzebra
也检查http://stackoverflow.com/questions/9290905/solr-tomcat-utf-8/9293107#9293107 – Jayendra