[hibernate-dev] Hibernate Search and Bobo Browse

Marc Schipperheyn m.schipperheyn at gmail.com
Fri Sep 10 12:18:38 EDT 2010


Yeah, I found the Provider. Bobo really likes to eat indexReaders though, so
I think I need a decorated indexReader that basically calls openReader when
Bobo asks for an indexReader or something like that. Unfortunately, it
doesn't turn out to be all that easy. Bobo is definitely built like a
Formula one car. It's all about speed, less about extensibility.

Bobo Browse also recommends caching the BoboIndexReader for multi threaded
access and optimized speed.

And then there is the fact that I'm not a genius framework programmer :-)

Ok, let me see if I can explain a little about Bobo Browse and Zoie to see
if you see a way to replace Zoie with Hibernate Search:

Bobo Browse creates search facets results on top of Lucene. It works out of
the box on top of a regular Lucene Index. And it's
Bobo creates a BoboIndexReader on top of a Lucene IndexReader to access
data. It is multithread access safe and recommends caching the IndexReader.
However, once it opens the IndexReader, it doesn't care about checking for
updates.

A post that explains the way Zoie integrates with Bobo is here:
http://snaprojects.jira.com/wiki/display/BOBO/Realtime+Faceting+with+Zoie?focusedCommentId=3014695

Recreating a BoboIndexReader at every request is a speed killer.

Zoie is an index search / writer tool that is in the same space as Hibernate
Search. It aims to provide a realtime updating layer on top of Lucene using
a RAM directory that temporarily flushes to the harddisk.
Using a decorator a Zoie IndexReader can be decorated to provide an
IndexReader to Bobo that thus becomes realtime as well.

I'm primarly interested in integrating Bobo with Hibernate Search. However,
even though Zoie is in the same space as Hibernate Search, it would be
interesting to review the option to integrate with Zoie as Zoie basically
focuses exclusively on the real time performance part and Hibernate Search
works so well with POJO interaction.

Another tool in by the same team is Sensei which focuses on distributed
indexing.

You can review some of the background of these tools on this blog:
http://invertedindex.blogspot.com/

Let me know if I this gives you an idea.

Vriendelijke groet,

Marc

On Fri, Sep 10, 2010 at 4:41 PM, Hardy Ferentschik <hibernate at ferentschik.de
> wrote:

> Hi,
>
> sounds interesting. I think I came across bobo-browse when investigating
> possible solutions
> for faceting implementations.
> If you are just after the underlying Lucene resources, like the
> IndexReader, you can get hold
> of it via SearchFactory.getReaderProvider(). In order to open the reader
> you will have to pass
> a DirectoryProvider (also accessible via the SearchFactory). Have a look in
> the online documentation.
>
> Of course this is all quite low level and a better integration would
> probably make use of some of
> the meta data provided by the framework.
>
> I guess in the end you would like to configure the facets in the
> FullTextQuery.
>
> It would probably also be good if the integration would be optional so that
> you only need to add additional
> libraries if you want to use bobo browse.
>
> We can help you some more, if you explain in more detail how you think this
> should work and what you
> need from the HSearch side.
>
> --Hardy
>
>
>
> On Fri, 10 Sep 2010 13:03:12 +0200, Marc Schipperheyn <
> m.schipperheyn at gmail.com> wrote:
>
>  Hi,
>>
>> I would like to suggest an integration of Hibernate Search with Bobo
>> Browse
>> (http://code.google.com/p/bobo-browse/). Bobo Browse is the open source
>> faceting engine developed by LinkedIn and AFAIC it's amazing. Even though
>> the documentation is sparse, the results are easy to achieve, flexible and
>> extremely fast.
>>
>> It has one caveat, it relies on another open source project: Zoie to
>> achieve
>> real time updated index/search results as by default it just opens an
>> IndexReader and is oblivious to changes in the underlying index until
>> reopened.
>>
>> I've been looking at a way to have Hibernate Search manage the interaction
>> with the Index in order for Bobo to have updated results as the underlying
>> index changes (just like Zoie does). But frankly, I'm not too good at this
>> lower level stuff.
>>
>> Anyway, would love to see this integration happen or some pointers on good
>> ways how to achieve this.
>>
>> Cheers,
>>
>> Marc
>> _______________________________________________
>> hibernate-dev mailing list
>> hibernate-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
>
>



More information about the hibernate-dev mailing list