Hibernate Search is a library that integrates Hibernate ORM with Apache Lucene or Elasticsearch by automatically indexing entities, enabling advanced search functionality: full-text, geospatial, aggregations and more. For more information, see Hibernate Search on hibernate.org.

We just published Hibernate Search 6.1.0.Beta2, another beta release of the next minor version of Hibernate Search.

Among the main changes: persistence and management of aborted events with the "outbox-polling" coordination, definition of Lucene analyzers without referring to Lucene classes, Elasticsearch 7.16 compatibility, OpenSearch 1.2 compatibility, and more.

What’s new

Hibernate Search 6.1 is still in development: some features are still incomplete or may change in a backward-incompatible way.

Dependency upgrades

Hibernate ORM (HSEARCH-4400)

Hibernate Search 6.1 now relies on Hibernate ORM 5.6.2.

Lucene (HSEARCH-4420)

The Lucene backend now uses Lucene 8.11.1.

Elasticsearch (HSEARCH-4340)

The Elasticsearch backend is now tested to be compatible with Elasticsearch servers in version 5.6, 6.8, 7.10 or 7.16.

OpenSearch (HSEARCH-4412)

The Elasticsearch backend is now tested to be compatible with OpenSearch servers in version 1.0 or 1.2.

Others

Log4j upgrade

As mentioned here, Hibernate projects do not use Log4j at runtime and thus are not affected by the various vulnerabilities discovered in Log4j 2 recently.

However, Hibernate Search does use Log4j during its own build, when executing tests, which is why we had to update our test dependency to Log4j 2.17.1 anyway.

Incidentally, this might help with some security sniffers that do not correctly understand the difference between runtime dependencies and test dependencies, leading to Hibernate Search being (falsely) reported as affected by the Log4j vulnerabilities.

Persistence and management of aborted events with the "outbox-polling" coordination

As of HSEARCH-4283, the outbox-polling coordination strategy now persists events whose processing failed 3 times, but with the "aborted" status that prevents their re-processing.

Several API methods are available to count aborted events, clear them or request their re-processing.

Lucene analyzer definition using tokenizer/filter names

As of HSEARCH-4404, a LuceneAnalysisConfigurer can be implemented without referring to Lucene classes at all, referring to tokenizers and filters using their name instead.

This is useful in some modular environments where the application might have access to Hibernate Search classes, but not to Lucene classes.

Breaking changes

No breaking changes compared to version 6.1.0.Beta1.

Other improvements and bug fixes

  • HSEARCH-4423: Hibernate Search will no longer incorrectly detect a cycle and fail to process @IndexingDependency(derivedFrom = …​) when the path to source properties contains two properties with the same name, but on different types. Thanks to fraf for reporting this!

  • HSEARCH-4401: The Lucene backend now correctly raises an error when running a search query where offset + limit is higher than Integer.MAX_VALUE, instead of incorrectly ignoring the limit.

  • HSEARCH-4398: Hibernate Search no longer has an unnecessary transitive dependency to org.apache.lucene:lucene-sandbox.

  • HSEARCH-4391: Fixed images not being displayed in the documentation.

  • HSEARCH-4408: Fixed syntax highlighting for code example not working anymore in the documentation.

And more. For a full list of changes since the previous releases, please see the release notes.

How to get this release

All details are available and up to date on the dedicated page on hibernate.org.

Getting started, migrating

For new applications, refer to the getting started guide.

For existing applications, Hibernate Search 6.1 is a drop-in replacement for 6.0, assuming you also upgrade the dependencies. Information about deprecated configuration and API is included in the migration guide.

Feedback, issues, ideas?

To get in touch, use the following channels:


Back to top