Morfologik词干与ascii折叠冲突

时间:2016-11-24 13:40:10

标签: solr lucene polish

我的字段分析器定义中包含以下过滤器的Solr-5.5.1:

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

它通常效果很好,但对某些词来说有问题,例如使用Poznań。它是一个城市名称,但是词干分析器将其识别为具有基本形式poznanie的波兰名词,并且这是被索引的内容。现在ASCII折叠应该确保在搜索poznan时,poznań的文档会匹配。但是,poznan被词干分析器识别为poznanie,因此不匹配。

如何解决这个问题?

我对解决方法的想法是让stemmer始终保留原始令牌,以便poznań变为[poznań, poznanie]而不是[poznanie]。有没有一种简单的方法来实现这一目标?有没有理由它默认不起作用? 我在solr.MorfologikFilterFactory的javadoc中找不到任何关于它的内容。

1 个答案:

答案 0 :(得分:0)

我的解决方法想法有一个简单的实现:确保词干分析器接收每个令牌及其ascii折叠形式。这可以通过额外的ASCIIFoldingFilterFactory来完成:

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