我是Solr的初学者。在我的项目中,NGramFilterFactory
和EdgeNGramFilterFactory
都用于字段。根据文档,我的理解是EdgeNGramFilterFactory
用于“开头为”查询,而NGramFilterFactory
适用于“包含”查询。
我为这两种组合索引了一个小的数据集(在其中一个仅使用NGramFilterFactory
,而在另一个我同时使用NGramFilterFactory
和EdgeNGramFilterFactory
),但是在输出中没有发现任何差异。
如果我的理解是正确的,那么某种程度上EdgeNGramFilterFactory
是NGramFilterFactory
的子集。如果是这样,那么在同一字段上使用两种类型的过滤器有什么好处?
最佳答案
您不应该在同一个字段上同时使用两个过滤器,因为它们会完全弄乱您的匹配。如果需要在令牌中间进行匹配,请使用NGrams。如果只需要从头开始进行匹配,则可以使用EdgeNGrams。永远不要在一起。