Hibernate Search is a community driven project and as such the roadmap constantly evolves to reflect the users needs.
You can find a finer grained roadmap in our issue tracker but this page is a good and concise view of where we are going.
Dates are generally omitted: milestones are released regularly, the Final release is tagged when it’s considered stable.
Hibernate Search 6.2
For a full list of issues currently planned for this series, see here.
- Better control over indexing
-
Hibernate Search 6.2 will provide ways to suspend automatic indexing. See HSEARCH-168, HSEARCH-1383.
- Hibernate Search for arbitrary data sources
-
Experimental module allowing integration with a datastore that is not accessed using Hibernate ORM.
Users will need to put in more work to configure it, in particular they will need to capture insert/update/delete events themselves.
Nevertheless, this could be useful for people looking to add full-text search to any application, not just applications relying on Hibernate ORM.
See also HSEARCH-1800.
- Search query features
-
These are rather important features when using Hibernate Search with arbitrary data sources, where loading data from the original data source might not be possible:
-
HSEARCH-3927 Projection to a DTO/JavaBean/etc.
-
HSEARCH-3943 Projection nesting: preserving the document structure in projections
Unrelated, other features are to be added to the Hibernate Search DSL:
-
HSEARCH-2192 Highlighting in the Search API
-
Hibernate Search 7.0
For a full list of issues currently planned for this series, see here.
- Upgrade baseline requirements
-
Upgrade to newer versions of dependencies and drop compatibility with older technologies. In particular:
-
HSEARCH-4556 Require JDK 11 (at least)
-
HSEARCH-4393 Upgrade to Lucene 9.x (which requires JDK 11)
-
HSEARCH-4394 Switch from Java EE to Jakarta EE
-
HSEARCH-4395 Upgrade to Hibernate ORM 6 (with requires Jakarta EE instead of Java EE) and drop compatibility with Hibernate ORM 5
-
Hibernate Search 7.1
For a full list of issues currently planned for this series, see here.
- Mass indexing improvements
-
In particular:
-
HSEARCH-3499 Near-zero-downtime mass indexing when the schema did not change
-
HSEARCH-1032 MassIndexer with an update mechanism
-
HSEARCH-521 Improve performance of MassIndexer through Eager fetching
-
- Search query features
-
Add more features to the Hibernate Search DSL. In particular:
-
HSEARCH-917 Add match all terms option when matching in the DSL API
-
HSEARCH-3327 Add options for match predicates targeting multiple fields
-
HSEARCH-3926 Predicate on multiple fields designated by a single label/group name/etc. ("_all", copy_to, …)
-
Hibernate Search 7.2
For a full list of issues currently planned for this series, see here.
- More advanced mapping
-
Allow more complex setups when it comes to mapping entities to indexes. In particular:
-
HSEARCH-3971 Mapping an entity differently based on a discriminator
-
HSEARCH-3683 Mapping a single entity type to multiple indexes
-
HSEARCH-3903 Filters based exclusively on mapper metadata for @IndexedEmbedded
-
- Some specialized field types
-
Add commonly used field types. In particular:
-
Fields derived from large blobs, useful when indexing PDFs with Apache Tika for example.
-
Maybe more, depending on demand, e.g. HSEARCH-3488 Add support for nanosecond precision for temporal fields.
-
- Tracing
-
Tracing of search queries and indexing requests to enable easier debugging and performance investigation.
See HSEARCH-4057.
Hibernate Search 7.x or later
- Free-form indexing
-
We’re planning to decouple the metadata definition from annotated java classes, to allow better indexing of other more flexible sources; for example to make it easier to index data structured in the JSON format, or other formats whose schema is not known at compile time.
- Debezium integration
-
Asynchronous indexing driven by Change Data Capture in the database instead of Hibernate ORM events.
This would allow capturing changes caused by any SQL command, not just those issued by Hibernate ORM.
See HSEARCH-3513.
- Reactive Search
-
Experiment with integrating Hibernate Search with Hibernate Reactive.
See also HSEARCH-3322, HSEARCH-3471.