我有一个基本的搜索引擎(使用lucene),它搜索目录中给出的文档(.txt)中的文本。我需要帮助如何更新修改/删除文档的索引。
答案 0 :(得分:0)
要删除lucene文档,您可以执行以下操作:
Term keyTerm = new Term(String fld, String text);
try{
indexWriter.deleteDocuments(keyTerm);
}catch(IOException exp){
//handle exception
}
为了更新文档,有一个内置方法:
updateDocument(Term term, Iterable<? extends IndexableField> doc)
首先删除包含term的文档,然后添加新文档来更新文档。
因此,从文档开始,首先删除文档并再次添加,所以只需使用上述方法删除文档,然后重新添加即可。
例如:
// 1) delete the document
indexWriter.deleteDocuments(keyTerm);
// 2) add it again.
indexWriter.addDocument(luceneDoc);
查看IndexWriter
了解详情。
答案 1 :(得分:0)
如果我了解您添加的评论,您想要查看.txt文件的目录,然后只重新编制已更改的文件的索引。 java.nio.file包中有一些应该有用的类。
以下是概述:http://docs.oracle.com/javase/tutorial/essential/io/notification.html#overview。