I would try the delete flag solution first, I'm pretty sure it's not that bad and it would allow you system to search deleted elements as well.
Otherwise, there is no easy way to achieve what you want. Hibernate Search is flexible enough however to plug arbitrary backend processors. Today there is a Lucene backend processor and a JMS backend processor.
I'm pretty sure you can subclass or fork the LuceneBackendProcessor(Factory) to delete when some objects are updated.
Once you've done that, you can set the processor factory used through this property:
Code:
hibernate.search.worker.backend my.own.BackendImplementationFactory
If it's not enough, you can plug an entirely different system right after the event model.
It's a Worker implementation and can be configured using
Code:
hibernate.search.worker.scope my.own.WorkerImpl
The second solution would require much more qurk I imagine (not sure).
Let me know how it goes, I am interested to see how flexible the extension points are.