0

我正在使用 Shingle Fitler 和 Suggester 来实现自动建议下拉菜单。我与 shingle 过滤器一起使用的字段有一个 worddelimiter,其 preserveoriginal=1 将“women's”标记为“women's”和“womens”。

正因为如此,当 shingle 过滤器生成单词 ngram 时,除了预期的标记外,还有一个 "women's womens" 标记。我想知道是否有任何方法可以配置 ShingleFilter 以便它忽略具有相同开始值和结束值的标记。

4

2 回答 2

0

我认为仅仅消除该令牌还不够好。说出您使用短语 的工作"red women's shoes",您最终会得到:

"red women's" "women's womens" "womens shoes"

只需消除中间标记即可:

"red women's" "womens shoes"

在这种情况下,SynonymFilter 只是增加了不一致性,而不是灵活性。

出于同样的原因,在 a 上保留原件SynonymFilter会妨碍(请参阅SynonymFilter 文档PhraseQueries顶部附近的注释),我看不到让它与 a 相处的好方法。是否可以不将其设置为保留原始令牌,并在索引和查询时应用 SynonymFilter?ShingleFilter

于 2013-05-03T15:34:53.680 回答
0

您还可以使用 RemoveDuplicatesTokenFilter。

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.RemoveDuplicatesTokenFilterFactory

最好的

于 2013-07-09T10:44:39.817 回答