Solr 中的术语向量

Term vectors in Solr

我正在尝试使用 MoreLikeThis Solr 的功能来查找基于其他文档的类似文档,但我不太了解其中一些功能的工作原理。

如其所说 here,MoreLikeThis 组件在存储 termVectors 时效果最佳。我的困惑来了。

我在 Solr 的 schema.xml 文件中的一个字段(假设该字段包含电影评论文本)上启用标志 termVectors 就足够了吗?它会让 Solr 在插入给定字段后计算 termVectors,存储它,然后在对 MoreLikeThis 处理程序的后续调用中使用计算出的 termVectors 吗?

简短的回答是否定的,您需要在这样的架构更改后重新编制索引。 启用术语向量后,将加快从原始输入文档(如果该文档在索引中)中查找有趣术语的过程。 第二阶段时间(当 More Like This 查询发生时)将保持不变。 有关 MLT 如何工作的更多信息 [1] .

一般来说,当对模式应用此类更改时,您需要重新索引文档以使 Solr 构建相关的数据结构(术语向量是每个文档的迷你索引,需要存储特定的文件在磁盘上[2] N.B。这将增加您的磁盘利用率)

[1] https://www.slideshare.net/AlessandroBenedetti/advanced-document-similarity-with-apache-lucene

[2] https://lucene.apache.org/core/6_6_0/core/org/apache/lucene/codecs/lucene50/Lucene50TermVectorsFormat.html