我正在使用Shingle Fitler和Suggester来实现自动提示下拉列表。我正在使用带有木瓦过滤器的字段有一个带有preserveoriginal = 1的worddelimiter来将“women's”标记为“女性”和“女性”。
正因为如此,当木瓦过滤器生成单词ngrams时,除了预期的标记之外,还有一个“女性女性”标记。我想知道是否有任何方法可以配置ShingleFilter,以便忽略具有相同开始值和结束值的令牌。
答案 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)
您也可以使用RemoveDuplicatesTokenFilter。
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.RemoveDuplicatesTokenFilterFactory
最佳