Hibernate Search

6.0 series development

API overhaul, more powerful bridges, smarter automatic indexing, nested documents, Lucene 8, Elasticsearch 7.

Compatibility

Java 8, 11 or 15
Hibernate ORM 5.4 (>= 5.4.4.Final)
Elasticsearch 5.6 - 7.10
Apache Lucene 8.7

Not compatible with your requirements? Have a look at the other series.

See also the Compatibility policy.

Documentation

Documentation for this specific series can be accessed through the links below:

HTML PDF API (JavaDoc)

You can find more documentation for all series on the documentation page.

How to get it

Maven, Gradle...

Maven artifacts of Hibernate Search are published to Maven Central and to the JBoss Maven repository. Refer to the Maven Getting Started guide on the JBoss Wiki for more information on how to configure the JBoss Maven repository.

You can find the Maven coordinates of all artifacts through the link below:

Maven artifacts

Below are the Maven coordinates of the main artifacts.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.CR2
Hibernate ORM mapper
org.hibernate.search:hibernate-search-backend-lucene:6.0.0.CR2
Lucene backend
org.hibernate.search:hibernate-search-backend-elasticsearch:6.0.0.CR2
Elasticsearch backend
org.hibernate.search:hibernate-search-backend-elasticsearch-aws:6.0.0.CR2
Amazon IAM authentication for Elasticsearch
org.hibernate.search:hibernate-search-mapper-orm-batch-jsr352-core:6.0.0.CR2
Batch for Java (JSR-352) mass indexing job for the Hibernate ORM mapper - Core
org.hibernate.search:hibernate-search-mapper-orm-batch-jsr352-jberet:6.0.0.CR2
Batch for Java (JSR-352) mass indexing job for the Hibernate ORM mapper - JBeret specifics
org.hibernate.search:hibernate-search-v5migrationhelper-orm:6.0.0.CR2
Helper for migrating from Hibernate Search 5 to Hibernate Search 6 (Hibernate ORM mapper + Lucene backend)

Zip archive

Direct download is available from SourceForge:

Download Zip archive

More information about specific releases (announcements, download links) can be found here.

Getting started

If you want to start using the library, please refer to the getting started guide:

HTML PDF

Migrating

If you need to upgrade from a previous series, please refer to the migration guide:

HTML PDF

What's new

Latest release announcement (2020-11-23): 6.0.0.CR2.

A detailed list of new features, improvements and fixes in this series can be found on our JIRA instance.

Dependency upgrades

Hibernate ORM

Hibernate Search 6 relies on Hibernate ORM 5.4.

Note that only Hibernate ORM 5.4.4.Final or later will work correctly; 5.4.3.Final and earlier will not.

Lucene 8

The Lucene backend now uses Lucene 8.7.

Elasticsearch 7

The Elasticsearch backend now works with Elasticsearch 5.6, 6.8 or 7.10. Support for older versions of Elasticsearch was dropped.

API refresh

A lot of APIs have been changed, for multiple reasons.

More consistent API types

The API types consistently use the Search prefix: no more mixing FullText with Search or simply no prefix.

Additionally, the SearchQuery type (previously FullTextQuery) now defines its own methods instead of extending JPA’s TypeQuery, highlighting the fact that it targets an index and not a database, and making it a friendlier API. It is still possible to create an adapter that implements JPA’s TypeQuery.

No more Lucene APIs leaking from Hibernate Search APIs

Hibernate Search APIs now abstract from the Lucene APIs, so that alternative backends such as Elasticsearch can be used without having Lucene on your classpath.

This should also improve the ability of the Hibernate Search project to upgrade Lucene as soon as new versions are released. In Hibernate Search 5, as Lucene was "part of" Hibernate Search APIs, we were severely limited when we wanted to upgrade to a newer Lucene version, because any breaking change in Lucene could mean a breaking change for Hibernate Search users, too. Now that Lucene APIs are no longer necessary to use Hibernate Search, upgrades should be faster.

New Search DSL

The Search DSL is brand new, with several improvements:

Bridge 2.0

The bridge APIs had to change as part of the API refresh, so we took this opportunity to overhaul bridge APIs to make bridges more powerful.

The new Bridge APIs are completely different, but with a lot of improvements:

  • bridges targeting non-String fields are now first-class citizens: when targeting bridge-declared, non-String fields in the Search DSL, you will no longer have to bypass bridges (.ignoreFieldBridge()) like you had to in Search 5;

  • bridges can define field types precisely, allowing in particular to pick an analyzer or to enable aggregation (faceting) on a bridge-declared field;

  • bridges can declare the properties they rely on, allowing Hibernate Search to reindex less frequently;

  • bridges can declare dynamic fields with a precise type which the Search DSL will be aware of;

  • bridges can be applied with custom annotations, allowing clearer mappings, especially when bridges are parameterized;

  • and more.

Easier to configure, more efficient automatic indexing

In Hibernate Search 6, automatic indexing is easier to configure correctly:

  • @ContainedIn is no longer needed: when using @IndexedEmbedded on an association, Hibernate Search 6 infers the inverse side of the association from Hibernate ORM metadata, which allows it to automatically reindex the class hosting the @IndexedEmbedded annotation when the target of the association changes.

  • When the inverse side of an association cannot be resolved, Hibernate Search 6 will report a mapping error on bootstrap, allowing you to detect risks of out-of-sync indexes early.

  • You can still opt out of automatic reindexing locally using @IndexingDependency(reindexOnUpdate = ReindexOnUpdate.NO).

  • Some want more performance with asynchronous automatic indexing, others prefer data safety and immediate visibility of indexed documents with synchronous automatic indexing. With Hibernate Search 6, this can all be configured with a single configuration property.

Hibernate Search 6 is also more efficient when processing changes on complex entity graphs. When a property changes in an entity that is indexed-embedded in multiple other entities, Hibernate Search 6 will only traverse associations to entities that are actually affected by the change, based on @IndexedEmbedded(includePaths = …​) and other metadata.

Runtime joins with nested documents

Hibernate Search 6.0 introduces "nested" fields and predicates, similar to the feature with the same name in Elasticsearch.

This means in particular that indexed-embedded entities can be searched much more finely, for example searching for that one book whose author has a given first name and last name. With the right query, no longer will Hibernate Search return a book authored by "John Smith" and "Jane Doe" when you were looking for "John Doe"!

For details, see @IndexedEmbedded storage type in the reference documentation.

More flexible schema management options

Creating Elasticsearch indexes with the right mapping can be a complex task. Doing it at the right time in a distributed application, even more so.

Just like Hibernate Search 5, Hibernate Search 6 can manage the schema for you on startup, but you can also disable automatic schema management and access dedicated APIs to trigger schema operations on demand.

Releases in this series

6.0.0.CR2

2020-11-23

Workaround for applications hanging on startup with Spring Boot 2.3+, type parameters for type bridges and property bridges, URI-based configuration for target Elasticsearch hosts, upgrade to Hibernate ORM 5.4.24.Final, Lucene 8.7, Elasticsearch 7.10.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.CR2

Maven artifacts Download Resolved issues Release announcement

6.0.0.CR1

2020-11-03

First release candidate for Hibernate Search 6. Compared to Beta11: Batch for Java (JSR-352) integration for the ORM mapper, built-in analyzer definitions for Lucene, total hit count on scrolls, optional path prefix for Elasticsearch, upgrade to Hibernate ORM 5.4.23.Final.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.CR1

Maven artifacts Download Resolved issues Release announcement

6.0.0.Beta11

2020-10-08

Default analyzer, ReindexOnUpdate.SHALLOW to limit automatic reindexing to same-entity updates only, new implementation for AWS IAM authentication, migration helper for applications moving from Search 5 to Search 6, upgrades to Lucene 8.6.2 and Hibernate ORM 5.4.22.Final

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Beta11

Maven artifacts Download Resolved issues Release announcement

6.0.0.Beta10

2020-09-04

Total hit count threshold, conditional indexing, per-index analyzer definitions for Elasticsearch, better timeouts, upgrades to Lucene 8.6.1, Elasticsearch 7.9.0 and Hibernate ORM 5.4.21.Final

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Beta10

Maven artifacts Download Resolved issues Release announcement

6.0.0.Beta9

2020-08-03

Simpler configuration, scrolling, projections on multi-valued fields, complete documentation, upgrades to Lucene 8.6.0, Elasticsearch 7.8.0 and Hibernate ORM 5.4.19.Final

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Beta9

Maven artifacts Download Resolved issues Release announcement

6.0.0.Beta8

2020-06-03

Entity graphs in search queries, @Indexed becomes inherited, upgrades to Lucene 8.5.2, Elasticsearch 7.7.0 and Hibernate ORM 5.4.17.Final

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Beta8

Maven artifacts Download Resolved issues Release announcement

6.0.0.Beta7

2020-05-11

Better sorts/aggregations on multi-valued/nested fields, dynamic index fields, index metamodel, low-level configuration of the Lucene backend, upgrade to Hibernate ORM 5.4.15.Final

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Beta7

Maven artifacts Download Resolved issues Release announcement

6.0.0.Beta6

2020-03-31

Bugfixes, schema management configuration and API at the mapper level, sorts on multi-valued fields, simpler and configurable indexing queues, implicit nested predicates, offline startup for Elasticsearch, upgrades to Lucene 8.5, Elasticsearch 7.6.1 and Hibernate ORM 5.4.13.Final

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Beta6

Maven artifacts Download Resolved issues Release announcement

6.0.0.Beta5

2020-02-24

Aliases for Elasticsearch indexes, delayed commits and NRT for Lucene, renaming of a few Search DSL methods, upgrades to Lucene 8.4, Elasticsearch 7.6 and Hibernate ORM 5.4.12.Final.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Beta5

Maven artifacts Download Resolved issues Release announcement

6.0.0.Beta4

2020-01-23

Fixed a performance regression in the Lucene backend, new MassIndexingFailureHandler for custom behavior on failure during mass indexing.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Beta4

Maven artifacts Download Resolved issues Release announcement

6.0.0.Beta3

2019-12-16

Schema improvements, deep customization of Elasticsearch search requests, more powerful bridge definitions, search query timeouts, upgrades to Lucene 8.3.0, Elasticsearch 7.5 and Hibernate ORM 5.4.10.Final.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Beta3

Maven artifacts Download Resolved issues Release announcement

6.0.0.Beta2

2019-10-28

Search analyzers, improved background failure handling, upgrades to Elasticsearch 7.4 and Hibernate ORM 5.4.7.Final.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Beta2

Maven artifacts Download Resolved issues Release announcement

6.0.0.Beta1

2019-09-24

Consistent API expected to remain stable, complete documentation for major features, aggregations.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Beta1

Maven artifacts Download Resolved issues Release announcement

6.0.0.Alpha9

2019-08-26

Correct handling of session flushing and clearing, static sharding, upgrades to Elasticsearch 7.3, Lucene 8.2 and Hibernate ORM 5.4.4.Final

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Alpha9

Maven artifacts Download Resolved issues Release announcement

6.0.0.Alpha8

2019-07-22

Restored configuration options for entity loading and Lucene index storage, simpler and more powerful bridge APIs, upgrades to Elasticsearch 7.2 and Lucene 8.1

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Alpha8

Maven artifacts Download Resolved issues Release announcement

6.0.0.Alpha7

2019-06-24

Missing index field type parameters restored, explicit indexing APIs restored, upgrade to Elasticsearch 6.8 and 7.1.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Alpha7

Maven artifacts Download Resolved issues Release announcement

6.0.0.Alpha6

2019-05-27

Decent performance for Lucene index access, indexing BigDecimal and BigInteger, less verbose search DSL, configuration of on-commit synchronization for automatic indexing, other bugfixes and improvements.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Alpha6

Maven artifacts Download Resolved issues Release announcement

6.0.0.Alpha5

2019-05-02

"indexNullAs" feature restored, API to declare dependencies in bridges, Elasticsearch 6.7 and 7.0, other bugfixes and improvements.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Alpha5

Maven artifacts Download Resolved issues Release announcement

6.0.0.Alpha4

2019-04-05

"exists" predicate, DSL converter bypass and analyzer override in predicates, upgrade to Lucene 8, Elasticsearch AWS integration restored, other bugfixes and improvements.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Alpha4

Maven artifacts Download Resolved issues Release announcement

6.0.0.Alpha3

2019-03-22

More field types, more predicates, more consistent and less verbose API, other bugfixes and improvements.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Alpha3

Maven artifacts Download Resolved issues Release announcement

6.0.0.Alpha2

2019-01-31

Mass indexer, Elasticsearch index lifecycle, efficient work orchestration in Elasticsearch, more projections, shorter annotation names, settings improvements.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Alpha2

Maven artifacts Download Resolved issues Release announcement

6.0.0.Alpha1

2018-11-29

Initial implementation: a few field types only, a few predicates/sorts/projections only, sub-optimal work orchestration, minimal documentation.

org.hibernate.search:hibernate-search-mapper-orm:6.0.0.Alpha1

Maven artifacts Download Resolved issues Release announcement

Back to top