Another option would be to only re-open your searcher when actually
needed, that is after the index has changed. This only does you some
good when you have some hope that there are sizable gaps in
your modifications....

Another possibility is to relax the "immediately" constraint. Would
a maximum of 10 minutes really be unacceptable? That would
allow you to open up a new Reader every 10 minutes, warm it up
in the background and then switch.

This works if you can say something to your product manager like
"give me a 10 minute delay and people will get significantly faster
results".

If that's unacceptable, you can *still* open up a new reader in the
background and warm it up before using it. "immediately" then
becomes 5-10 seconds or so.

Best
Erick

On 5/24/07, Simon Wistow <[EMAIL PROTECTED]> wrote:

I've built a Lucene system that gets rapidly updated - documents are
supposed to be searchable immeidately after they've been indexed.

As such I have a Writer that puts new index, update and delete tasks
into a queue and then has a thread which consumes them and applies them
to the index using one instance of an IndexModifier. So far so good.

However every new Search opens up a new IndexSearcher in order to make
sure that it gets new documents. The docs indicate is a big
performance penalty.

Are there any tips or tricks I can use to mitigate this?

thanks,

Simon

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to