Я видел несколько онлайн-заявлений о том, что NHibernate (или Hibernate) Search "заботится о синхронизации базы данных / индекса".
Когда я читаю эти утверждения, я не могу не задаться вопросом, есть ли подразумеваемое "... пока вы используете [N] Hibernate для любого доступа ко всем данным."
Я использую NHibernate в качестве слоя доступа только для чтения к базе данных, полностью принадлежащей другому приложению, поэтому мое приложение никогда не будет напрямую осведомлено о внешних записях.
Действительно ли Hibernate / NHibernate Search что-то делает для отслеживания изменений необработанных данных, например, при настройке уведомления о запросе и / или использовании срока действия или "истечения срока действия" для полных или частичных индексов?
Или индекс Lucene будет постепенно прогрессировать со временем, так как все больше и больше строк изменяются внешними приложениями?
Если этот инструмент не не выполняет такую синхронизацию, кроме ручной переиндексации (которая была бы очень трудной для правильного определения времени), есть ли что-нибудь еще, что я могу сделать чтобы синхронизировать индекс Lucene с базой данных, или мне лучше просто использовать возможности полнотекста в SQL Server, как я делал до этого момента?