提问者:小点点

调用提交后将文档添加到 Lucene 索引编写器


我用的是Lucene 4.6。我创建了一个Lucene IndexWriter(在创建模式下),添加了文档并提交了它(没有关闭它)。然后运行搜索查询并存储结果。我再次向索引编写器添加文档,提交并关闭它。并对其进行了搜索查询。它给出了新数据和旧数据的结果。旧数据也出现在索引中。我可以知道从索引中删除所有数据的方法吗?有没有办法一口气把所有的文件都删了?


共2个答案

匿名用户

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

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

匿名用户

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