当您
term_vector=with_positions_offsets为特定字段设置时,这意味着您将为该字段存储每个文档的术语向量。
在突出显示时,术语向量允许您使用Lucene快速向量突出显示工具,它比标准突出显示工具快。原因是标准荧光笔没有任何快速的方法来突出显示,因为索引没有包含足够的信息(位置和偏移量)。它只能重新分析字段内容,截取偏移量和位置并根据该信息进行突出显示。这可能需要一段时间,尤其是对于长文本字段。
使用术语向量,您确实有足够的信息,不需要重新分析文本。不利之处是该指数的规模将显着增加。我必须补充一点,因为Lucene
4.2术语向量可以更好地压缩并以优化的方式存储。此外,还有新的PostingsHighlighter,它基于将偏移量存储在发布列表中的功能,该功能甚至需要更少的空间。
elasticsearch根据可用信息自动使用最佳方式进行突出显示。如果存储术语向量,它将使用快速向量荧光笔,否则使用标准荧光笔。在没有术语向量的情况下重新索引后,将使用标准荧光笔突出显示。它将较慢,但索引将较小。
关于ngram字段,所描述的行为很奇怪,因为快速矢量荧光笔应该对ngram字段有更好的支持,因此我希望得到完全相反的结果。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)