lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doron Cohen (JIRA)" <>
Subject [jira] Commented: (LUCENE-997) Add search timeout support to Lucene
Date Tue, 23 Oct 2007 20:37:51 GMT


Doron Cohen commented on LUCENE-997:

I think this is a nice feature to have.

But I am not sure about the propsed API - the application creates a TimerThread, starts it,
and the timer thread is then passed to the searcher with setTimeOut(timer,ticks). Not so simple.

I think my preference for the API and implementation would be in HitCllector.collect() - in
other words, we consider this new feature as an advanced one, and so only allow applications
to provide their "timed" hitCollector. The modified collect() would either throw a TimeoutException
or return a timedOut indication. If this is a (subclass of) RunTimeException (thuogh I am
not crazy about this alternative) then there's no API change (a plus) but we need to verify
that the code below propagates the RuntimeException gracefully and closes all the streams
and everything (which I believe it does with all last careful changes by Mike and Michael).
If RuntimeEXception is not acceptable, then this is an API change (a minus) and also many
(simple) changes will be required in scorers (callers to collect). 

The application's timedColletor will have all the logic in that collector for both announcing
and detecting the timeout. Next we can add a TimedCollector for the benefit of applications,
and last, consider adding search() methods with timeOut, but I doubt that last step.

> Add search timeout support to Lucene
> ------------------------------------
>                 Key: LUCENE-997
>                 URL:
>             Project: Lucene - Java
>          Issue Type: New Feature
>            Reporter: Sean Timm
>            Priority: Minor
>         Attachments:, timeout.patch, timeout.patch
> This patch is based on Nutch-308. 
> This patch adds support for a maximum search time limit. After this time is exceeded,
the search thread is stopped, partial results (if any) are returned and the total number of
results is estimated.
> This patch tries to minimize the overhead related to time-keeping by using a version
of safe unsynchronized timer.
> This was also discussed in an e-mail thread.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message