配置ShingleFilterFactory以忽略具有相同开始和结束的令牌

时间:2013-05-03 14:40:47

标签: solr lucene

我正在使用Shingle Fitler和Suggester来实现自动提示下拉列表。我正在使用带有木瓦过滤器的字段有一个带有preserveoriginal = 1的worddelimiter来将“women's”标记为“女性”和“女性”。

正因为如此,当木瓦过滤器生成单词ngrams时,除了预期的标记之外,还有一个“女性女性”标记。我想知道是否有任何方法可以配置ShingleFilter,以便忽略具有相同开始值和结束值的令牌。

2 个答案:

答案 0 :(得分:0)

我认为只是消除那个令牌还不够好。说你使用短语"red women's shoes",最后得到:

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

只需删除中间令牌即可:

"red women's" "womens shoes"

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

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

答案 1 :(得分:0)