Hi Emmanuel,
Thank you very much for your quick reply. :)
We will have two Tomcat instances running on production. The original thinking is to use the configuration documented in Hibernate Search:
http://www.hibernate.org/hib_docs/search/reference/en/html/search-architecture.html#d0e408
... of having the two Tomcats sharing the same search index.
There will be less than 20 users, making edits and saving Products with the application. The DB insert/update runs before the search index update within the same transaction. Since this is a administrative Web app with a low number of users, I would have thought that the above setup would be sufficient.
Our Entity relationships span several layers deep. Do you think that the more complex the relationships, the longer it takes to perform incremental indexing?
One key requirement that I have is to reflect the Product insert/updates in the Search results as soon as possible. After reading the Hibernate Search docs re. JMS, it seems that this may be achieved by configuring a low number for the
hibernate.search.default.refresh property. However, I would like to simplify the design to not use a third "master" instance to perform updates to the index.
Can you tell me if doing the following is possible with Hibernate Search:
1) 2 Tomcat instances, one running a JMS queue.
2) Both instances accepts search requests.
3) Both instances accepts Product insert/edit requests
4) Insert/edits are published to the JMS queue on the designated instance
5) The designated instance is solely responsible for writing to the index
6) There will only be one index that is shared between the two Tomcat instances (i.e. no master/slave setup, and hence no copying of index files)
Do you think this is possible?
Also, the documentation mentioned that I could use
AbstractJMSHibernateSearchController without a MDB (we are running Tomcat) - how would I go about doing so? We are using Spring - can I just configure it as a Spring bean and point (somehow) Hibernate Search to it?
Best,
-Frank