Java Lucene:termFreqVector总是空的?

Java Lucene:termFreqVector总是空的?,java,lucene,Java,Lucene,对于任何文档,termFreqVector始终为空。 我确信文档在集合中,字段存在。那么问题出在哪里呢 对于(inti=0;i

对于任何文档,termFreqVector始终为空。 我确信文档在集合中,字段存在。那么问题出在哪里呢

对于(inti=0;i TermFreqVector tfv=reader.getTermFreqVector(i,“标记”)


谢谢

您确定要使用
Field.TermVector对字段进行索引吗?是
?下面是一个工作示例:

Directory directory = new RAMDirectory();
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
MaxFieldLength mlf = MaxFieldLength.UNLIMITED;
IndexWriter writer = new IndexWriter(directory, analyzer, true, mlf);

Document doc = new Document();
doc.add(new Field("tags", "foo bar", Field.Store.NO,
        Field.Index.ANALYZED, Field.TermVector.YES));

writer.addDocument(doc);
writer.close();

IndexReader reader = IndexReader.open(directory);
for (int i = 0; i < reader.numDocs(); i++) {
    TermFreqVector tfv = reader.getTermFreqVector(i, "tags");
    System.out.println(tfv);
}
Directory Directory=new-RAMDirectory();
Analyzer Analyzer=新标准分析仪(版本:LUCENE_30);
MaxFieldLength mlf=MaxFieldLength.UNLIMITED;
IndexWriter writer=新的IndexWriter(目录、分析器、true、mlf);
单据单据=新单据();
文件添加(新字段(“标签”、“食物栏”、字段.Store.NO、,
Field.Index.analysised,Field.TermVector.YES);
writer.addDocument(doc);
writer.close();
IndexReader=IndexReader.open(目录);
for(int i=0;i
@user680406:永远不要使用numDocs()访问索引中的文档,而应该使用maxDoc()。一旦索引被删除,您将无法访问所有文档。