One my biggest problems with HSearch has always been saving an item and because of IndexedEmbedded getting a cascade of queries to reindex the entire object graph. This can be mitigated by caching but is best avoided all together.
It allows you a kind of inner join between indexes and is quite performant.
I'm already using this to great effect. The feature has I think matured in Lucene 4.x, although there is still some work left, and I'm wondering if this would be a valuable addition to the DSL api.
One my biggest problems with HSearch has always been saving an item and because of IndexedEmbedded getting a cascade of queries to reindex the entire object graph. This can be mitigated by caching but is best avoided all together.
One interesting way to avoid this is using the QueryTimeJoin feature
http://blog.trifork.com/2012/01/22/query-time-joining-in-lucene/
http://blog.seecr.nl/2013/10/16/reducing-index-maintenance-costs-with-query-time-join-for-solrlucene/
It allows you a kind of inner join between indexes and is quite performant.
I'm already using this to great effect. The feature has I think matured in Lucene 4.x, although there is still some work left, and I'm wondering if this would be a valuable addition to the DSL api.