-
Task
-
Resolution: Done
-
Blocker
-
3.5.0.Final
-
None
Currently, the Lucene- and HibernateSearch-specific components are not encapsulated well. They span multiple packages, are directly instantiated by the JcrRepository.RunningState, and mix generic functionality with Lucene- and HS-specific functionality.
This should be refactored to decouple the JcrRepository functionality from specific implementations. This will allow adding in (multiple) other query & index implementations to support our own internal indexes (MODE-2018), embedded Lucene (for non-clustered uses), remote Solr, remote ElasticSearch, or other implementations. Ideally these different implementations can be combined, so that a query can use multiple implementations to answer a single query. (For example, Lucene/Solr/ElasticSearch might be used for full-text search constraints, whereas the internal indexes be used for everything else.)
This would also allow customers to implement and externalize their own query system, if they so choose.