Подтвердить что ты не робот

Можете ли вы прочитать индекс lucene при обновлении индекса

Я не могу найти прямой ответ или нет! Я знаю, что могу отправлять несколько чтений параллельно, но могу ли я запросить индекс, когда отдельный процесс/поток обновляет его?

4b9b3361

Ответ 1

Прошло некоторое время с тех пор, как я использовал Луцен. Однако, предполагая, что вы говорите о версии Java, FAQ говорит следующее:

Позволяет ли Lucene одновременно выполнять поиск и индексирование?

Да. Тем не менее, IndexReader выполняет поиск только по индексу как "момент времени", который был открыт. Любые обновления индекса, добавленные или удаленные документы, не будут отображаться до тех пор, пока IndexReader не будет снова открыт. Поэтому ваше приложение должно периодически повторно открывать свои IndexReaders для просмотра последних обновлений. Метод IndexReader.isCurrent() позволяет проверить, происходили ли какие-либо обновления в индексе с момента открытия IndexReader.

Ответ 2

См. также функцию Lucene, близкую к реальному времени, которая дает быстрый отклик на изменения (добавляет, удаляет, обновляет), чтобы индекс мог выполнять поиск этих изменений. Например, используя почти в реальном времени вы можете вносить изменения в индекс, а затем снова открывать считыватель каждые несколько секунд.