I've seen several statements online to the effect that NHibernate (or Hibernate) Search "takes care of the database/index synchronization".
When I read these statements, I cannot help but wonder if there is an implied "...as long as you use [N]Hibernate for any and all data access."
I am using NHibernate as a read-only data access layer against a database that is owned entirely by a different application - so my application will never be directly aware of external writes.
Does Hibernate/NHibernate Search actually do anything to monitor changes to the raw data, as in setting up a query notification and/or employing a time-to-live or "expiration" on whole or partial indexes?
Or is the Lucene index just going to get progressively staler over time as more and more rows are changed by external applications?
If this tool doesn't do that kind of synchronization, then aside from manual reindexing (which would be very difficult to time properly), is there anything else I can do to keep the Lucene index in sync with the database, or am I better off just using the Fulltext capabilities in SQL Server, as I have been doing up until this point?