It has been a long time since an Hibernate Search release but we have not been lazy. We are pleased to announce 3.1.0 Beta1 with tons of new features and enhancements. This release uses Lucene 2.3.x and works with Hibernate Core 3.3, Hibernate Annotations 3.4 and Hibernate EntityManager 3.4. Here is a list of some of the major new features and enhancements:
- more flexible analyzer support (see below)
- the Hibernate Search engine is no longer tied to Hibernate Core (see below)
- performance enhancements on projections (Hibernate Search is now as fast as pure Lucene)
- performance enhancements in the object loading algorithm (when multiple object types are requested)
- better memory management on large index copies
- better mass indexing approach by explicitly flushing changes to indexes via a programmatic API (deprecating the old batch_size approach)
- better resource sharing through the shared-segments reader provider strategy
- better and more transparent filter caching solution
- access to more Lucene features including term position, similarity and query explanations
- simplification of configuration (events)
- more built in bridges
Hibernate Search let's you define analyzers declaratively and decouple tokenizer and token filters usage thanks to the Solr analyzer framework. It is now very easy to index a field for phonetic, synonym, snowball (stemming) and many more. A small dependency bug has leaked in this beta1 version. You will need to replace apache-solr-analzers.jar by a full solr distribution jar you can download at apache.org if you ant to use @AnalyzerDef on some filters.
The core engine is now abstracted form Hibernate Core thanks to the job done by Navin, our Google Summer of Code student. Hibernate Search is now the JBoss Cache full-text search engine (more on that in a later post) and is now open to support alternative data stores (including other ORMs).
We will likely post new entries to zoom on some of these features.
Hibernate Search in Action already reflects most of the new features and will describe all of them in the near future.