2013-09-22 68 views
0

我正在使用Lucene为具有相对较大数量(数十万)动态创建/更新/删除文件的目录建立索引。每个文件有一个Lucene文档,文件名是文档中的一个字段。lucene删除涉及已删除文件系统文件的文档

Document doc = new Document(); 
    doc.add(new StringField("id", file.getName(), Store.YES)); 
    doc.add(new LongField("stamp", file.lastModified(), Store.YES)); 
    doc.add(new StringField("path", file.getAbsolutePath(), Store.YES)); 

我如何(越快越好)迭代索引中涉及文件系统上缺少文件的所有文档?

回答

1

除非关于文件是否丢失的信息以某种方式直接存储在索引中,否则我看不到比迭代每个文档(使用MatchAllDocsQuery)和检查每个文档是否存在使用File.exists()更快的方法。

+0

MatchAllDocsQuery,是的! – bobah