为什么getTermVectors总是返回null?

时间:2014-07-10 22:56:43

标签: java lucene morelikethis

所以我试图对索引进行一些术语向量分析,但是当我运行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 :(得分:0)

您可能正在为TextField编制索引。对于需要没有术语向量的索引字段的用户,TextField是一个便利类。如果您需要术语向量,只需使用Field。它需要更多代码行,因为您需要先创建FieldType实例,将storeTermVectors和tokenizer设置为true,然后在Field构造函数中使用此FieldType实例。