The Hibernate Search team is pleased to announce version 3.0 final. Hibernate Search provides full text search (google-like) capabilities to Hibernate domain model objects. Based on Apache Lucene, Hibernate Search focuses on ease of use and ease of configuration, lowering the barrier to entry of Lucene and its integration with a domain model.

Key features include:

  • Transparent index synchronization: This feature eliminates the need to manually update the index on data change. Events generated by Hibernate Core will trigger the update transparently for the application. Index updates are scoped per transaction to match the application transactional behavior.
  • Seamless integration with the Hibernate and Java Persistence query model: Hibernate Search embraces both the Hibernate and Java Persistence semantic and APIs. As a result, switching from a Hibernate Query Language (HQL) query to a full text query requires only minimal changes to the application.
  • Out-of-the-box asynchronous clustering mode: Handles clustered applications, this out of the box mode also handles gracefully indexing load peaks, avoiding potential contentions on online systems.
  • Product extensibility: Developers can extend Hibernate Search with a series of extension points for deep index interaction customization that helps edge case applications meet their performance and architectural requirements and constraints.

Some additional noticeable features:

  • query filter (similar to the Hibernate Filter feature): useful for security, temporal data, category filtering etc transparently cached for the user
  • join-style query: ability to query based on associated entities
  • query projection: avoid database roundtrips if the relevant data is also stored in the index
  • access to the result score, boost, total number of results and other Lucene metadata
  • ability to manually (re)index and purge data form the index
  • index sharding: sharing the same index for several classes or splitting (sharding) a given class into several indexes. It is useful for performance when the index becomes /very/ big.
  • transparently optimized access to Lucene both for index update and queries
  • native access to the Lucene resources

Many thanks to the community for having over the past year shown support, enthusiasm and helped the product maturation both from a feature set and stability point of view. You can download Hibernate Search or walk through the documentation and the getting started section. Happy searching :)

25. Sep 2007, 00:56 CET | Link

Great work, Emmanuel. This website is running Hibernate Search by the way, type something into the search box on the left and press CTRL + F (or ALT + F on Windows, I think).

25. Sep 2007, 15:25 CET | Link

tried the search and got;

javax.servlet.ServletException: /includes/mainMenuItem.xhtml @10,63 items

25. Sep 2007, 16:03 CET | Link

Yes, we are struggling with some hard to reproduce bugs on the live system. I can't produce them on the staging box with unfortunately the only difference being an OS X 32 bit VM and a Linux 64 bit VM. These are relatively random exceptions that are somehow related to database transactions - the message you are seeing says that your request couldn't be processed because an object couldn't be loaded from the database. I was hoping that the fine-tuning of the connection pool I did last night would resolve this - apparently not.

Since this is the first time this application is running under real load we expected a few problems and are obviously investigating... this problem is not related to Hibernate Search.

01. Dec 2007, 15:56 CET | Link

i tried the Hibernate search with seam. i got an Exception when i try to search second time.