我试图使用以下代码获取一组文档的tf:
IndexReader r = IndexReader.open(FSDirectory.open(new File("index")));
TermFreqVector tfv = r.getTermFreqVector(root[i],"contents"); // where root[] contains the
document IDs of the documents in my corpus
我一直得到一个空指针异常。谁能告诉我这里可能有什么问题?我正在使用Lucene 3.6.2,无论如何确保在索引时启用termFreqVector?
如果我的猜测是正确的,字段contents
是一个TextField,它被索引和标记化但没有术语向量。因此,您将获得空值。人们需要更多信息来调试确切的原因。
将字段添加到索引中,您应该指定第四个参数,如下所示:
doc.Add(new Field(“text”,text,Field.Store.NO,Field.Index.ANALYZED,Field.TermVector.YES));