1

我的程序运行速度太慢,以至于在调用 Lucene indexwriter.close 之前,在将 40,000 个文档插入数据库之后,我不得不中途终止它以优化部分代码。然后,对于某些似乎仅限于该特定运行的 40,000 个文档的记录,我找不到任何结果。

这是否意味着我在程序运行期间索引的那些记录丢失了?IndexWriter 必须始终完全关闭以允许将数据写入索引?

提前致谢!

4

1 回答 1

1

您需要调用但不关闭commitaddDocument仅分析文档并将数据缓冲到内存中,而 commit 将刷新挂起的更改并执行 fsync。

close调用在内部提交,我认为这就是您认为需要 close 的原因。

但是,请注意不要过于频繁地调用 commit,因为与 addDocument 相比,此操作非常昂贵。

于 2013-01-10T15:47:02.443 回答