Ayende @ Rahien

Unnatural acts on source code

Review: Hibernate Search in Action

image I just finished reading Hibernate Search in Action, and I loved it. I should point out that I was the porter of Hibernate Search to NHibernate Search, so I had some previous expertise in the topic. In addition to that, I approached this book at an angle completely orthogonal to the expected audience. Unlike most "in Action" books, I did not intend to make immediate use of the code and approaches suggested in the book. Instead, I looked to the book as a way to deepen my understanding of the tool and how it works.

I am impressed, massively so, that it did so well in this regard for someone who has gone through the entire source code of the project several times.

I'll not bore you with the actual details, you can get the actual content summary of off the site. From my perspective, after reading this book I know that I am going to take a completely different approach for most complex search scenarios, and I think that I have the practical theoretical knowledge to deal with it.

I highly recommend the book if you actually need to deal with Hibernate Search, but I would recommend it to people who are not using it, because it contains some important eye opening concepts if you are not used to full text search tools capabilities. As a nice bonus, I was able to take the information in the book and use it to discuss a problem the customer was having, ending up with something that I consider far superior of the solution that they currently employ.

It is not out yet, and I reviewed a non final copy, but you can order the PDF right now, and just reading the freely available first chapter is valuable in itself.

Comments

Jan Limpens
09/02/2008 03:01 AM by
Jan Limpens

Well, I'd be happy if you shared what your different approach looks like!

Ayende Rahien
09/02/2008 03:15 AM by
Ayende Rahien

Basically,

using lucene to index the data, using several layers of of targeted search to get the most accurate option, querying at various accuracies targets.

this works only in certain scenarios, where you want fuzzy search

Manuel Abadia
09/02/2008 05:11 AM by
Manuel Abadia

I hope that means that you will add the missing bits to make NHibernate Search more feature complete compared to the Java version (se we can use more complex lucene scenarios like TermVectors, etc.)

I know it is easy to ask, but I had to try to channel your energy after such a good read :-P

Ayende Rahien
09/02/2008 06:21 AM by
Ayende Rahien

NH Search is certainly a place I am going to invest some time in

You can always send some patched my way

Grimace
09/02/2008 12:06 PM by
Grimace

Too bad the print version has been delayed multiple times, and the book is now facing the NH2.0 release. Still, it will be on our shelve when it hits the stores.

Ayende Rahien
09/02/2008 12:30 PM by
Ayende Rahien

Grimace,

I think you didn't really read the post well

Nathan
09/02/2008 04:55 PM by
Nathan

What IS the intersection between capabilities found in NH 2.0 and the techniques discussed in the book? Is there a significant discord? If I buy it and read and get all spun up about it will I find myself aching for things I haven't got? :) Of course I'm sure the theory itself will be well worth the time, but I'm just curious.

Ayende Rahien
09/02/2008 04:56 PM by
Ayende Rahien

There is a fair bit of intersection, I think

Grimace
09/02/2008 09:48 PM by
Grimace

Ouch... someone stole the N from your post :s

note to self: always read very carefully before responding

Josh Robb
09/30/2008 03:39 AM by
Josh Robb

[Slightly offtopic]

After having read this would you still recommend using Lucerne as a semi-structured database/document database? (referring to some discussions on the castle lists months back?)

Ayende Rahien
09/30/2008 06:08 AM by
Ayende Rahien

At the moment, I am strongly leaning toward CouchDB for that

Comments have been closed on this topic.