1

我正在使用 Lucene 4.6。我创建了一个 Lucene IndexWriter(在 CREATE MODE 中)并添加了文档并提交了它(没有关闭它)。然后运行搜索查询并存储结果。我再次将文档添加到索引编写器并提交并关闭它。并对其进行搜索查询。它也给出了新数据和旧数据的结果。旧数据也出现在索引中。我可以知道从索引中删除所有数据的方法吗?有什么办法可以一次性删除所有文件吗?

4

2 回答 2

1

如果您可以向我们提供代码片段,那会更好,但似乎问题在于您使用OpenMode.CREATE的是OpenMode.CREATE_OR_APPEND. 在这种情况下,每次创建IndexWriter对象时,旧数据都会被覆盖,而不是附加。

另外,请确保您使用的是最新版本。当前是v4.9.0

于 2014-08-07T08:09:45.590 回答
0

indexwriter.deleteall 方法将删除索引中的所有文档,您可以重用相同的 indexwriter 在新文档上构建 INDEX 并运行搜索查询并在需要时关闭它

于 2014-08-08T08:24:56.723 回答