提问者:小点点

Apache lucene 删除不起作用


我对Apachelucene非常熟悉,我正在尝试使用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());
    }
}

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

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

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

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


共1个答案

匿名用户

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