Apache lucene删除无法正常工作

时间:2014-06-04 21:09:30

标签: java apache lucene

我是Apache lucene的新手,我正在尝试使用4.7.0构建索引。 我能够将文档(这些是阿拉伯文档)编入索引,但是我在删除文档时遇到了问题。我用来删除文档的代码如下。

public void deleteFile(String filePath) {
    System.out.println("Reached at deleting a file" );
    try {
        Term term = new Term("path", filePath);
        writer.deleteDocuments(term);
        writer.commit();
    } catch (IOException e) {
        System.out.println(" caught a " + e.getClass() + "\n with message: " + e.getMessage());
    }
}

其中“path”是保存文件夹文件夹中文件路径的字段。

以下是我如何索引路径字段

doc.add(new StringField("path", file.getPath(), Field.Store.YES));

当我尝试删除使用上述方法索引的任何文档时,它不起作用,我仍然可以通过使用Luke看到删除的文档仍然是索引的一部分。有人请告诉我我是什么做错了?

1 个答案:

答案 0 :(得分:0)

也许forceMergeDeletes解决了这个问题。调用deleteDocuments后必须使用它。