Как узнать, когда завершится процесс генерации индекса Lucene - PullRequest
3 голосов
/ 23 июня 2009

У меня есть служба Windows .net, которая генерирует поисковые индексы Lucene каждую ночь. Сначала я получаю все записи из базы данных и добавляю их в индекс Lucene с помощью метода AddDocument IndexWriter's, а затем вызываю метод Optimize, прежде чем вернуться из метода. Так как извлекаемые записи очень большие, индексация занимает около 2-3 минут. Как вы уже знаете, Lucene генерирует файлы промежуточного сегмента во время генерации индекса и сжимает весь индекс в 3 файла при вызове Optimize.

Могу ли я узнать, что этот процесс генерации индекса завершен Lucene и индекс доступен для поиска? Мне нужно это знать, потому что я хочу вызвать другой метод, когда процесс завершится.

Ответы [ 2 ]

4 голосов
/ 23 июня 2009

Вы можете проверить наличие файла write.lock.

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

0 голосов
/ 27 июня 2009

Я не понимаю, зачем вам знать, когда Lucene заканчивает индексацию. Вы можете выполнять поиск во время индексации Lucene. На самом деле, я думаю, вы можете искать, пока он оптимизируется.

Мне лично не нравится идея поиска файла блокировки. Разве вы не можете установить логическое значение и переключать его после вызова writer.optimize ()?

...