Lucene способен выполнять так называемый поиск в режиме реального времени, что означает, что обновления индекса можно увидеть в результатах запроса практически мгновенно. Таким образом, вы можете свободно отправлять обновления, как только они сохраняются в базе данных - у Lucene не должно быть проблем с обработкой даже довольно частых обновлений, как, например, с его помощью создается поиск в Twitter (конечно, для поддержания такой большой нагрузки нужно будет распределить ваш индекс).
Поэтому желательно, чтобы вы отправляли свои обновления в некотором коде, который срабатывает после совершения транзакции. Трудно сказать что-то более конкретное, не зная, какую базу данных или систему очередей вы используете. Некоторые общие соображения по этому вопросу, а также примеры использования его вместе с CouchDB или RabbitMQ приведены в документации asticsearch river .