3

我有一个 .net windows 服务,它每晚都会生成 Lucene 搜索索引。我首先从数据库中获取所有记录并使用 IndexWriter 的 AddDocument 方法将其添加到 Lucene 索引中,然后在从该方法返回之前调用 Optimize 方法。由于提取的记录非常大,索引编制大约需要 2-3 分钟才能完成。如您所知,Lucene 在生成索引时会生成中间段文件,并在调用 Optimize 时将整个索引压缩为 3 个文件。

无论如何我可以知道这个索引生成过程是由 Lucene 完成的,并且索引可用于搜索吗?我需要知道这一点,因为我想在流程完成时调用另一个方法。

4

2 回答 2

4

您可以检查 write.lock 文件是否存在。

http://wiki.apache.org/lucene-java/LuceneFAQ#head-733eab8f4000ba0f6c9f4ea052dea77d3d541857

于 2009-06-23T18:52:30.823 回答
0

我不明白为什么您需要知道 Lucene 何时完成索引。您可以在 Lucene 建立索引时执行搜索。事实上,我认为您可以在优化的同时进行搜索。

我个人不喜欢搜索锁定文件的想法。调用 writer.optimize() 后,您不能设置布尔值并切换它吗?

于 2009-06-27T00:42:38.443 回答