我們使用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