2012-07-03 5 views
0

В настоящее время у меня есть компонент Seam, который находится в моей сессии. Этот компонент является , в котором хранится пользовательский объект Lucene (частный атрибут), который открывает конструктор Lucene в конструкторе. Когда я хочу выполнить поиск, я использую объект «Lucene» в моей сессии, который использует уже открытый индекс Lucene. Итак, когда я хочу найти что-то еще, я могу снова использовать уже открытый индекс.Лучшая практика закрытия индекса Lucene

Но теперь у меня нет логики Java, которая закрывает читателя. Не должно это сделать в некотором методе, таком как метод destroy() (который вызывается te JVM)? Или это нормально, если я не закрываю вручную читателя вручную?

Спасибо, Jochen

ответ

0

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

+0

В настоящее время мы запускаем поток, который закрывает IndexReader, если они не были использованы более 5 минут. –

Смежные вопросы