Wednesday, May 16, 2007

Demo of JBoss Seam DVD Store powered by Hibernate Search

Many asked me if the DVD Store demo powered by Hibernate Search that I ran at JavaOne was available online.
The answer is not yet, but it will. My plan is to package it nicely and release it when the beta 2 of Hibernate Search is out.
This will hopefully happen fairly soon. JavaOne being behind us, I can focus back on the code base.

I had some very interesting discussions with some of you about Lucene and the features you need, it's good to see the community growing around the project.

3 comments:

Anonymous said...

hi there,

I will look forward to the demo.

BTW, how does hibernateSearch relate to compass(http://www.opensymphony.com/compass/)
?

thank you,

BR,
~A

Unknown said...

That's a fairly hot topic you are asking. Let's try not to piss too much people ;-)

Here is what I think are the main advantages of Hibernate Search.

Tight integration with the Hibernate programmatic model

You can replace a HQL query with a Lucene one just by changing the way the o.h.Query object is built. Once built, it's a regular Query API where you can use pagination/list/iterate etc
Even more, the returned objects are managed object from your persistence context (your session), so the object == is preserved, any change you do on the objects will be propagated to the database (dirty checking). The object graph lazy loading is the one from Hibernate. Simply because those objects are "Hibernate objects" from the session. The transactional semantic is the one you expect even if you use the long conversation pattern (aka extended persistence context).
I also have added the ability to project the data from the index (in SVN HEAD currently)

Close to no configuration

There is no separate configuration nor factor to maintain in your code, usually the configuration end up putting the jar in the classpath and add 2 properties in your persistence.xml or hibernate.cfg.xml
The rest is the mapping based on annotations

Potentially smaller indexes

Because by default, the data is pulled out of the PC, the 2nd level cache or the database, you don't need to store the data in the index to rehydrate the object graph.


You can index synchronously or asynchronously if the response time is critical to you.

Clustering
There is an asynchronous cluster mode out of the box based on JMS, that helps to build a clustered solution that scale out fairly well (more than if you were sharing the Fire System directory and the regular Lucene locking scheme). The configuration is fairly simple.

HTH

Anonymous said...

Many people are researching and using the net to find the product that they are searching for, so they must be accurate for their search results. Especially for the results for dvd store online.