更新文本搜索引擎的索引文档

时间:2014-03-16 14:38:32

标签: java lucene search-engine

我有一个基本的搜索引擎(使用lucene),它搜索目录中给出的文档(.txt)中的文本。我需要帮助如何更新修改/删除文档的索引。

2 个答案:

答案 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