在索引时使用Solr的EdgeNGramFilterFactory与查询时间有什么区别?

时间:2017-07-20 21:23:23

标签: apache solr tokenize

我没有注意到许多差异,但是当你在索引时使用EdgeNGramFilterFactory时,文档术语本身会被分解为子串,然后你的搜索字符串在这些子串上匹配,同样在索引时查询你输入被分解为子字符串,然后匹配正常的文档字符串?

这是查看此过程的正确方法还是我有误解?

谢谢!

1 个答案:

答案 0 :(得分:0)

根据Solr Wiki: -

https://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.EdgeNGramFilterFactory

边缘n-gram分析可以在索引或查询时(或两者)执行,但通常更有用的是,如本示例所示,在索引时生成n-gram,所有n-克指向同一位置。在查询时,查询词可以直接匹配,无需任何n-gram分析。

因此,如果您在索引时执行n-gram分析,那么基本上生成的n-gram将彼此接近,从而获得更好的性能。

我将其视为数组和链接列表。在数组中,元素彼此更接近,从而导致更快的遍历。