2013-04-20 208 views
0

我試圖讓一組用下面的代碼文件的TF:getTermFreqVector() - NullPointerException異常

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在索引時啓用?

+1

請包括錯誤的堆棧跟蹤。你有沒有試過用調試器來檢查r和root是否爲空? – eldris 2013-04-20 20:44:44

+0

確保在建立索引時啓用termfreqvector信息。你可以檢查使用盧克或索引源代碼 – phani 2013-04-20 21:08:27

+0

嘿,你有沒有解決這個問題?我自己也遇到同樣的問題。我很確定我的術語向量被正確索引,但我看到一個NPE。 – Kmanc 2014-07-09 00:46:38

回答

0

如果我的猜測是正確的,則字段contents是一個TextField,它被索引和標記,但沒有詞向量。因此你得到一個空值。人們需要更多的信息來調試確切的原因。

0

添加場分爲指數,應指定第四個參數是這樣的:

doc.Add(新場( 「文字」,文本,Field.Store.NO, Field.Index.ANALYZED,Field.TermVector 。是));