我是Solr的初学者。在我的项目NGramFilterFactory
和EdgeNGramFilterFactory
中,两者都用于字段。根据文档我的理解是EdgeNGramFilterFactory
用于"以"开头。 NGramFilterFactory
适用于"包含"查询。
我为两个组合索引了一个小数据集(其中一个我只使用了NGramFilterFactory
,另一个我同时使用了NGramFilterFactory
和EdgeNGramFilterFactory
),但我没有看到任何差异。输出
如果我的理解是正确的,EdgeNGramFilterFactory
的某种方式是NGramFilterFactory
的子集。如果这是真的那么在同一个领域使用两种类型的过滤器有什么好处吗?
答案 0 :(得分:5)
你不应该在同一个领域使用这两个过滤器,它们会完全搞砸你的匹配。如果您需要在令牌中间匹配,则使用NGrams。如果您只需从头开始匹配,则使用EdgeNGrams。从来没有在一起。