Here’s a great approach to maintaining Lucene indexes from a Hibernate-based application.
In Code_Poet’s blog he describes building and maintaining the Lucene index from an Interceptor, so that on every change to the underlaying database he automatically maintains the index at the same time. Very neat.