Стремился узнать мнение людей о необходимости обновления индекса Lucene по мере внесения изменений в объекты модели домена приложения.
Рассматриваемое приложение представляет собой веб-приложение на основе Java / J2EE, которое использует Hibernate. В настоящее время все работает так, что все объекты отображенной модели Hibernate реализуют общий интерфейс «Indexable», который может возвращать набор пар ключ / значение, записанных в Lucene. Всякий раз, когда выполняется операция CRUD с таким объектом, я отправляю его через очередь JMS в управляемый сообщениями компонент, который записывает в Lucene первичный ключ объекта и пары ключ / значение, возвращенные из метода index () объекта Indexable, который был предоставлена.
Меня больше всего беспокоит эта схема, если MDB отстает и не успевает за поступающими операциями индексации или если какая-то ошибка / исключение мешает объекту быть индексированным. Результатом является устаревший индекс для сортировки или для длительного периода времени.
По сути, мне просто было интересно, какие стратегии придумали другие для такого рода вещей. Не обязательно искать один правильный ответ, но я представляю список идей типа «доски», чтобы заставить мой мозг задуматься об альтернативах.