为什么getTermVectors总是返回null?

3

我想对一个索引进行术语向量分析,但是当我运行getTermVectors时,总是返回null。我的索引创建具有以下属性。

    type.setIndexed(true);
    type.setTokenized(true);
    type.setStored(true);
    type.setStoreTermVectors(true);
    type.setStoreTermVectorPositions(true);
    type.freeze();

稍后,当我想要获取向量时,我运行以下代码:

Map<String, Int> termFreqMap = new HashMap<>();
for (String fieldName : fieldNames) {
  final Fields vectors = ir.getTermVectors(docNum);
  ....

整个循环中向量最终都变成了null。我在哪里犯了愚蠢的错误?非常感谢您的任何帮助!

1个回答

0

你可能正在索引TextField。TextField是针对需要无词向量的索引字段的用户而设计的便利类。如果您需要词项向量,请使用Field。这需要更多的代码行,因为您需要首先创建一个FieldType实例,将storeTermVectors和tokenizer设置为true,然后在Field构造函数中使用这个FieldType实例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接