0

我的字段分析器定义中有一个带有以下过滤器的 Solr-5.5.1:

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

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

任何ieas如何解决这个问题?

我的解决方法是让词干分析器始终保留原始标记,这样poznań就变成[poznań, poznanie][poznanie]. 有没有简单的方法来实现这一目标?默认情况下它不能像这样工作有什么原因吗?我在solr.MorfologikFilterFactory的 javadoc 中没有找到任何关于它的信息。

4

1 回答 1

0

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

    <filter class="solr.ASCIIFoldingFilterFactory" preserveOriginal="true"/>
    <filter class="solr.MorfologikFilterFactory" />
    <filter class="solr.ASCIIFoldingFilterFactory"/>
于 2016-11-25T09:35:03.260 回答