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 * Maybe also some optional APIs: ** Coordinates ** {{@Spatial}}
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. |
|