Using a MOM though JMS to do what I call asynchonous indexing is actually our recommended approach to cluster full-text searches with Hibernate Search
Chapter 10 covers this topic and demonstrates how to set that up in
Java EE (
JBoss AS 5 is used as an example).
Here is how it works, there are slave nodes and one master node.
All slaves contain your application and can execute full text queries based on a loca version of the Lucene index (hence fast).
When objects are changed, the changes are sent to the JMS queue instead of being applied to the Lcueen index.
The master node does listen to the JMS queue (it's an MDB usually) and apply the changes to the master index.
On a regular basis (configurable), slaves copy the new master index to get the updated version of the index. The copy is incremental so after the first time, the copy is quite minimal.