yes indeed I'm aware of the limitation, and it's going to be addressed by version 4.0. In fact, it already was and if you checkout the current master branch you should be able to try it out; alas I didn't document it yet, but basically all you have to do is provide different backend configurations "scoped" under the index name; so where it was
Code:
hibernate.search.[backendoptions]
now all properties are relative to the index name they apply to:
Code:
hibernate.search.default.[backendoptions] //all indexes
hibernate.search.[indexName].[backendoptions]. //overrides per index
If you can't wait for Hibernate Search 4.0, in fact with Hibernate Search 3.4 you have a third alternative, which is to use Infinispan as clustering engine; it would still require a JMS backend to write the changes, but you can setup the backend and the JMS queue in synchronous mode, and as soon as the update is delivered all other nodes will be able to query it.
The main characteristic of using Infinispan as a directoryprovider is that state is transferred to all nodes in real time.
Another option which might be viable - depends on your model - is to use a different Hibernate instance for this specific entity.
In all cases I would not recommend the SAN approach - that's going to open a can of worms, file locking *is* an issue with Lucene on distributed file systems.