2016-11-24 114 views
0

Morfologik詞幹衝突我有一個Solr的-5.5.1在我的行業分析定義以下過濾器:與ASCII摺疊

<filter class="solr.MorfologikFilterFactory" /> 
    <filter class="solr.ASCIIFoldingFilterFactory"/> 

它通常的偉大工程,但對於一些的話有問題,例如與Poznań。這是一個城市名稱,但詞幹程序員認爲它是一個波蘭名詞,其基本形式爲poznanie,這就是索引。現在ASCII摺疊應該確保搜索poznan時,poznań的文檔將匹配。但poznan不被承認者識別爲poznanie,所以不匹配。

任何ieas如何解決此問題?

我的解決方案的想法是讓stemmer始終保留原始令牌,以便poznań變爲[poznań, poznanie]而不僅僅是[poznanie]。有沒有簡單的方法來實現這一目標?有沒有這樣的默認情況下不工作的原因? 對於solr.MorfologikFilterFactory,我沒有在javadoc中找到任何有關它的信息。

+0

查詢時分析儀是什麼?你能發佈schema.xml的相關部分嗎? – root545

+0

我只有一個分析器定義,所以查詢分析器是一樣的。我甚至證實,當我在這個地方刪除MorfologikFilterFactory時,'poznan->poznań'匹配工作正常。 – Speedstone

回答

0

我的解決方法的想法有一個簡單的實現:確保stemmer收到每個令牌以及它的ascii-folded形式。這可以通過額外的ASCIIFoldingFilterFactory來完成:

<filter class="solr.ASCIIFoldingFilterFactory" preserveOriginal="true"/> 
    <filter class="solr.MorfologikFilterFactory" /> 
    <filter class="solr.ASCIIFoldingFilterFactory"/>