NgramFilterFactory 和 EdgeNGramFilterFactory 之间的区别
Difference between NGramFilterFactory and EdgeNGramFilterFactory
我是 Solr 的初学者。在我的项目中,NGramFilterFactory
和 EdgeNGramFilterFactory
都用于一个字段。根据文档,我的理解是 EdgeNGramFilterFactory
用于 "starts with" 查询,而 NGramFilterFactory
适用于 "contains" 查询。
我为这两种组合索引了一个小数据集(其中一个我只使用 NGramFilterFactory
而另一个我同时使用 NGramFilterFactory
和 EdgeNGramFilterFactory
)但我没有看到任何区别在输出中。
如果我的理解是正确的,在某种程度上 EdgeNGramFilterFactory
是 NGramFilterFactory
的子集。如果这是真的,那么在同一字段上使用两种类型的过滤器有什么好处吗?
您不应该在同一个字段上同时使用两个过滤器,它们会完全打乱您的匹配。如果您需要在标记的中间进行匹配,您可以使用 NGrams。如果您只需要从头开始匹配,您可以使用 EdgeNGrams。从来没有在一起。
我是 Solr 的初学者。在我的项目中,NGramFilterFactory
和 EdgeNGramFilterFactory
都用于一个字段。根据文档,我的理解是 EdgeNGramFilterFactory
用于 "starts with" 查询,而 NGramFilterFactory
适用于 "contains" 查询。
我为这两种组合索引了一个小数据集(其中一个我只使用 NGramFilterFactory
而另一个我同时使用 NGramFilterFactory
和 EdgeNGramFilterFactory
)但我没有看到任何区别在输出中。
如果我的理解是正确的,在某种程度上 EdgeNGramFilterFactory
是 NGramFilterFactory
的子集。如果这是真的,那么在同一字段上使用两种类型的过滤器有什么好处吗?
您不应该在同一个字段上同时使用两个过滤器,它们会完全打乱您的匹配。如果您需要在标记的中间进行匹配,您可以使用 NGrams。如果您只需要从头开始匹配,您可以使用 EdgeNGrams。从来没有在一起。