使用Solr长度过滤器,但保留一些单词

时间:2016-02-24 17:59:03

标签: solr lucene

我们正在使用Solr来索引某些消费品描述,我们的词汇分析显示,放弃使用lenght&lt; 4(<filter class="solr.LengthFilterFactory" min="4" max="25" />)。我们能够提供更好的查询结果。

但是,我们想要保留一些有意义的词,例如GPS,LCD,LED。

Solr是否提供具有此类功能的过滤器(丢弃短字,但如果它在异常列表中,请保留它)?或者我需要专门研究LengthFilter来实现我想要的目标?

我还想过使用SynonymFiler在LengthFilter之前“转换”令牌(例如:LCD =&gt; liquid_crystal_display)。有关此解决方案的任何想法吗?

TIA,

鲍勃

1 个答案:

答案 0 :(得分:0)

你的问题是关于删除&#34;几乎&#34;过滤器链中少于四个字母的所有单词。

您可以使用SynonymFilter。你甚至可以在链中使用两个SynonymFilter。首先让你的单词更长,然后再切换回原始单词。缺点:只有一个SynonymFilter,您不能使用LC?之类的通配符,因为通配符搜索does not use the filter chain

其他可能性:使用PatternReplaceFilter将所有&#34;替换为短&#34;带有停用词的单词并将StopFilter添加到您的过滤器链中(可能使用空单词替换就足够了。)