On Thursday 04 January 2007 14:13, Terry Jones wrote:
> I have a fairly simple question about trying to write a long-running
> BSD-based reader/writer class. I've written something that works, but it's

I haven't used the BSDDB[0] directory, but I had implemented something like 
this using FSDirectory.  Add one doc, do some searching, add a doc, rinse, 
repeat.  The performance was decidedly bad.  The key lesson here: Lucene is 
not a database.[1]  Closing / opening writers & readers is not speedy & loses 
the benefits of caching.

If you want to go the route your going, I'd recommend setting up a single 
class to manage the Directory, IndexSearcer & IndexWriter.  Basically, the 
idea is to provide access to the searcher & writer via properties.  Accessing 
one closes the other if it's open.

Andi's suggestion of using a RAMDir & merging is probably best.  If you need 
immediate access to the just-added doc, you can do that with a MultiSearcher. 
Though to be honest, I'd suggest thinking about other ways to structure your 
application.[2]

--Pete

[0] Has anyone else had difficulties w/ bsddb (outside PyLucene)?  Despite 
it's excellent reputation, it's given us lots of trouble.  We've been using 
gdbm instead.

[1] It's a little like a database though.

[2] My advice on such matters is available at the low, low price of hundreds 
of dollars per hour.  Act now!

-- 
Peter Fein                                                     [EMAIL PROTECTED]
773-575-0694                                      Jabber: [EMAIL PROTECTED]
http://www.pobox.com/~pfein/                     irc://irc.freenode.net/#chipy
_______________________________________________
pylucene-dev mailing list
[email protected]
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev

Reply via email to