我可以保护短词免受 Solr 中的 n-gram 过滤器的影响吗?

问题描述 投票:0回答:2

我见过关于在 Solr 中搜索短单词的 this Question。 我想知道是否有另一种可能的解决方案来解决类似的问题。 我使用的 EdgeNGramFilter 的 minGramSize 为 3。我想保护一组特定的较短单词(主要是两个字母的缩写词)不被忽略,但我希望将 minGramSize 保留为 3 来处理其他内容。 EdgeNGramFilter 不支持受保护的单词列表。 是否有任何过滤器或设置可以在单个字段类型中实现这一点,或者我需要编写一个吗?

或者,我是否以错误的方式思考这个问题?

search solr lucene n-gram
2个回答
3
投票

认真思考了这个问题,但你提到的另一个问题的答案似乎是唯一的方法。不过,这对于 EdgeNGramFilter 来说是一个有用的功能。

目前,您可以为其保留一个副本字段和一个 KeepWordFilterFactory,仅包含您需要的首字母缩略词。或者,如果您事先不知道首字母缩略词列表,请使用LengthFilter


0
投票

处于同样的情况,发现较新的 Solr 版本现在支持 Ngram 过滤器的

preserveOriginal
参数,默认设置为
false
。所以通过这个设置:

<filter class="solr.NGramFilterFactory"
    minGramSize="3"
    maxGramSize="15"
    preserveOriginal="true"/>

它将生成设定大小的 n-gram 标记,并保留 <3 and >15 个长标记,就像在命中 NGramFilterFactory 过滤器之前一样。

© www.soinside.com 2019 - 2024. All rights reserved.