Lucene имеет функцию поиска почти в реальном времени, чтобы удовлетворить именно эту потребность.
Требуется, чтобы ваш IndexReader был в той же JVM, что и IndexWriter.
Вы вносите изменения с помощью IndexWriter, а затем открываете программу чтения непосредственно из модуля записи с помощью IndexReader.open (writer) или в более старых выпусках Lucene writer.getReader (). Этот вызов, как правило, будет очень быстрым (пропорционально тому, сколько изменений вы внесли с момента последнего открытия читателя), поскольку он обходит дорогостоящий коммит, обычно необходимый для открытия считывателя. Он может искать незафиксированные изменения в писателе.
Этот читатель по-прежнему ищет моментальный снимок от записывающего устройства, т. Е. Все изменения на момент его открытия.