【发布时间】:2022-06-11 03:46:16
【问题描述】:
对于 Lucene.net,我想获得 stackoverflow question 中描述的术语向量。
问题是,索引已经生成了索引和存储的字段,但没有术语向量。
FieldType type = new FieldType();
type.setIndexed(true);
type.setStored(true);
type.setStoreTermVectors(false);
理论上,应该可以重新计算每个文档的词向量,然后将其存储在索引中。
您知道在不删除完整 Lucene 索引的情况下如何做到这一点吗?
【问题讨论】:
-
不是答案,只是一些注释:(1)我的注释是基于 Java 使用的,但应该可以翻译成 .NET。 (2) 您不能将缺失的词向量信息添加到现有索引中。您可以更新(替换)索引数据 - 但这是您想要避免的,我想。
-
(3) 您可以创建动态术语向量数据(不存储在索引中)。使用
TokenStream类的Add Attribute()方法 - 例如,使用OffsetAttribute类。权衡是较小的索引(或不重新构建索引),但搜索速度可能较慢。 -
@andrewJames note (3) 非常有趣。我没有意识到这是可能的。希望我能以一种能让你获得更多积分的方式投票。老实说,我认为您的两个 cmets 值得合并为一个实际答案。
-
@andrewJames 如果您能提供一个示例并将其与实际答案结合起来,那将非常酷。
标签: lucene lucene.net