[
https://issues.apache.org/jira/browse/LUCENE-997?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12527264
]
Sean Timm commented on LUCENE-997:
----------------------------------
Here are some additional details on the changes.
New files:
TimeLimitedCollector.java
Extends HitCollector and detects timeouts resulting in a
TimeLimitedCollector.TimeExceeded exception being thrown.
TimerThread.java
TimerThread provides a pseudo-clock service to all searching threads, so
that they can count elapsed time with less overhead than repeatedly calling
System.currentTimeMillis. A single thread should be created to be used for all
searches.
Modified Files:
Hits.java
Added partial result flag.
IndexSearcher.java
Catches TimeLimitedCollector.TimeExceeded, sets partial results flag on
TopDocs and estimates the total hit count (if we hadn't timed out partway
through). Returns TopDocs with partial results.
Searcher.java
Added methods to set and get the timeout parameters. This implementation
decision has the limitation of only permitting a single timeout value per
Searcher instance (of which there is usually only one). However, this greatly
minimizes the number of search methods that would need to be added. In
practice, I have not needed the functionality to change the timeout settings on
a per query basis.
TopFieldDocCollector.java
Uses TimeLimitedCollector functionality.
TopDocCollector.java
Uses TimeLimitedCollector functionality and exposes it to child class
TopFieldDocCollector.
TopDocs.java
Added partial results flag. Note, TopFieldDocs extends this class and
inherits the new functionality.
> Add search timeout support to Lucene
> ------------------------------------
>
> Key: LUCENE-997
> URL: https://issues.apache.org/jira/browse/LUCENE-997
> Project: Lucene - Java
> Issue Type: New Feature
> Reporter: Sean Timm
> Priority: Minor
> Attachments: LuceneTimeoutTest.java, 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.
> http://www.nabble.com/search-timeout-tf3410206.html#a9501029
--
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]