| This module should provide in particular:
- The most commonly used annotations from Search 5, as well as integration code to detect and apply these annotations to the ORM mapping.
- An implementation of the main runtime APIs:
- The Search class to retrieve the FullTextEM/FullTextSession
- The most commonly used methods of FullTextEM/FullTextSession (createFullTextQuery() and index() in particular)
- The QueryBuilder
- The most commonly used methods of FullTextQuery
Parts of the APIs may be dropped if they are not very often used and/or close to impossible to support in Search 6. The compatibility layer is only expected to work when mapping ORM entities to Lucene indexes. Elasticsearch integration and JMS/JGroups backends, in particular, are out of scope. We might have to rename or relocate some Search 6 classes to avoid conflicts with the classes in the compatibility layer. Note that, in order to implement the QueryBuilder in the compatibility layer, we have two solutions:
- Just copy/pasting the old DSL code from Search 5 and re-implement everything it needs on top of Search 6. In particular, implement the old metamodel. Might be time-consuming.
- OR Reimplement the old DSL by redirecting calls the new DSL. Might change behavior slightly.
We might want to create subtasks to implement this bits by bits. |