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