Solr和拼写排除结果中的短词

时间:2014-11-06 09:42:28

标签: solr lucene

我的索引中有很多糟糕的单词,只是使用我的数据和附带的示例。这使得拼写建议非常糟糕。

例如,它建议了很多随机1-3个字符长的单词。例如:

查询carr:ca ar c r r car rr carrot。

我希望拼写查询忽略所有那些无用的单词。它们并不是真正的停止词,而是随机缩写词。我还没想出如何在索引编制过程中跳过一个字母的单词......

另外,如果你搜索arrot,你永远找不到胡萝卜。怎么能实现呢?

1 个答案:

答案 0 :(得分:0)

在您用于建议的字段的字段类型定义中,您可以使用LengthFilterFactory - 将min设置为3,并且您不会看到索引的短字。

请参阅:https://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.LengthFilterFactory

对于问题的第二部分,您可以在字段定义中使用

<filter class="EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="back" />

这将从单词的结尾生成nGrams(ot,rot,rrot,arrot)。这取决于您如何生成和处理查询的具体细节。