2010-10-25 66 views
3

我想通過在lucene索引中使用術語來刪除文檔。但我在下面做的代碼不起作用。有沒有什麼建議我如何在lucene索引中執行刪除功能?如何在lucene中使用術語刪除文檔

public class DocumentDelete { 
public static void main(String[] args) { 
File indexDir = new File("C:/Users/Raden/Documents/lucene/LuceneHibernate/adi"); 
Term term = new Term(FIELD_PATH, "compatible"); 
Directory directory = FSDirectory.getDirectory(indexDir); 
IndexReader indexReader = IndexReader.open(directory); 
indexReader.deleteDocuments(term); 
indexReader.close();   
} 
} 
+0

您的代碼看起來不錯,嗯... – 2010-10-25 09:01:16

+0

代碼看起來不錯。也許索引有一個你應該刪除的鎖定文件。如果這不起作用,請確切地向您的問題添加如何看到刪除失敗。 – 2010-10-25 09:20:42

+0

是甚至匹配任何文件的術語?首先搜索該術語,以查看是否得到任何結果。 – bajafresh4life 2010-10-25 13:15:02

回答

2
IndexReader indexReader = IndexReader.open(directory); // this one uses default readonly mode 

改用此:

IndexReader indexReader = IndexReader.open(directory, false); // this will open the index in edit mode and you can delete the index. . . 

所以,你不需要爲刪除索引內容有任何額外的工具。 。 。

相關問題