Hi,Emmanuel i think you did a very greate job! Since i am now working on a system that using lucene to implement a search engine, i would like to know some more details about Hinbernate Search.
I have read some of the code in Hinbernate 3.2GA release, the code is pretty cool, but there is one thing i doubt: For the update operation Hibernate Search used remove & update.which refer to Lucene's deleteDocuments method. That's ok and i also could only find this way to update the index data. This will works fine when the operation does not have high frequency. But as i know the remove operation in lucene only marked a tag for the deleted document without actually delete the data ofr index files. We know in some systems the data would be updated in a very high frequency(eg. an traffic status query system), then it will not take a long time that the index will be filled with lots of expired document data, even if the data update is not as fast as a traffic status, i think this problem is still very critical since things we stored in databases are always updating. Is there any way to solve this in Hibernate Search? Richie 2006/11/19, Emmanuel Bernard <[EMAIL PROTECTED]>:
I forgot a couple of things. I do not think that all your object properties belongs to the Index, and some of them will be put in the index with information degradation (ie store year/month rather than the whole date). So I do not believe there is a bidirectional relationship between your domain model and your index documents (for size, efficiency and accuracy purpose). For that matter, Compass cannot really truly index your database backed domain model and give back the object to you. Hibernate Search can because it delegate the object hydration to Hibernate Core. Of course that's my opinions, and some people can disagree ;-) Emmanuel Bernard wrote: > > Hi, > I am not really familiar with Compass I haven't really looked at the > code, Hibernate Lucene (now renamed Hibernate Search) started from a > user demand. I had some in depth discussions though, with some users > that evaluated both Compass and Hibernate Search that helped me drive > its design. > > Here are the arguments in favor of Hibernate Search: > 1. not Yet Another API to deal with your domain model > If you already use an ORM (JPA or Hibernate), you are familiar with > those APIs. Using compass implies that you have to use a different set > of API to play with the object lifecycle (CRUD). > Hibernate Search is integrated with the org.hibernate.Query interface, > and all the CUD operations on the index are triggered from the Hibernate > CUD operations. > > 2. Metadata > Metadata are minimal and fit particularly well through annotations, so > you don't have yet another XML representation of ther same domain model > (Compass might now have annotations support, you'll have to check) > > 3. it's all about managed objects (ie managed by the Session or the > EntityManager) > Hibernate Search gives you back objects managed by the Session, so any > change made to them will (by default) be synchronized with the database, > this is the normal behavior of an ORM, but is not what you have from a > Compass search. > This approach fits well with the JBoss Seam approach of having all the > application around the domain model and EJB 3.0 > > 4. Not too much abstraction > From what I've heard, Compass borrow a lot of its design / classnames > from Hibernate/Spring/Lucene. Compass tries to abstract those 3 > techlnologies (at least Hibernate and Lucene), by providing its own > infrastructure. > What am trying to do with Hibernate Search is to keep the abstraction as > light as possible. For advanced Lucene query you'll have to use pure > Lucene APIs, which is possible / natural with Hibernate Search > > > I invite you to check these links (which I expect to release soon) > http://www.mail-archive.com/hibernate-dev%40lists.jboss.org/msg00392.html > and for the future (but flexible) > http://www.mail-archive.com/hibernate-dev%40lists.jboss.org/msg00393.html > > HTH > > Emmanuel > > Lukas Vlcek wrote: > > > > Emanuael, > > I would be glad to hear your answer here (on user list). > > Regards, > > Lukas > > > > ---------- Forwarded message ---------- > > From: Emmanuel Bernard <[EMAIL PROTECTED]> > > Date: Nov 13, 2006 11:07 PM > > Subject: Re: Hibernate Lucene trademark issues > > To: java-dev@lucene.apache.org, [EMAIL PROTECTED] > > > > Hi Lukas, > > I'd be happy to answer your question, but I don't think Lucene dev is > > the appropriate area for that kind of discussion. > > let's move this discussion here > > http://forum.hibernate.org/viewforum.php?f=9 (or in the Lucene User list > > if you want to). > > > > Emmanuel > > > > Lukas Vlcek wrote: > > > > > > Hi Emmanuel, > > > > > > I am interested in you solution. I have a plan to use lucene and > > hibernate > > > in my next project and search will play very important role > > > (*stake-holder* > > > functionality). I have heard of > > > comapss<http://www.opensymphony.com/compass/>project which introduces > > > searching (lucene) layer on top of hibernate also. > > > I haven't had a change to study it in detail yet. > > > > > > Do you think you could give me some high level comments about your > > > motivation for implementing lucene search directly in hibernate code, > > > couldn't you just use compass project? Is there any fundamental > > difference > > > between your approach and comapss? > > > > > > Many thanks, > > > Lukas > > > > > > On 11/6/06, Emmanuel Bernard <[EMAIL PROTECTED]> wrote: > > > > > > > > Hi guys, > > > > I'm Emmanuel Bernard from JBoss. > > > > I'm the current lead developer of the Hibernate Lucene integration > > > module. > > > > The goal of this project is to facilitate the integration of a > search > > > > capability to Hibernate based applications. And guess what, I use > > Lucene > > > > ;-) > > > > > > > > > > > > > > http://www.hibernate.org/hib_docs/annotations/reference/en/html/lucene.html > > > > > > > > > > http://www.mail-archive.com/hibernate-dev%40lists.jboss.org/msg00392.html > > > > > > > > I realized this week end that the 'Hibernate Lucene' name might > > infringe > > > > the Apache Lucene trademark policy. > > > > http://www.cafepress.com/lucene/ seems to state that Lucene is a > > > > trademark of the Apache Software Foundation (nice golf shirt BTW) > > > > But I wasn't able to find any document explaining the fair use > of the > > > > Lucene brand (the license as well as the notice seem to be silent on > > > > this subject). > > > > > > > > Even if Lucene in not trademarked, what do you consider a fair > use of > > > > your brand? I'm happy to rename my project, I guess the initial > choice > > > > was more a tribute to your project than anything else. > > > > > > > > Emmanuel > > > > > > > > PS: please forward this email to the appropriate persons if this > > is not > > > > the case already (PMC or whatever) > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]