Lucene++ - a full-featured, c++ search engine
API Documentation


Loading...
Searching...
No Matches
TimeLimitingCollector.h
Go to the documentation of this file.
1
2// Copyright (c) 2009-2014 Alan Wright. All rights reserved.
3// Distributable under the terms of either the Apache License (Version 2.0)
4// or the GNU Lesser General Public License.
6
7#ifndef TIMELIMITINGCOLLECTOR_H
8#define TIMELIMITINGCOLLECTOR_H
9
10#include "Collector.h"
11
12namespace Lucene {
13
17class LPPAPI TimeLimitingCollector : public Collector {
18public:
22 TimeLimitingCollector(const CollectorPtr& collector, int64_t timeAllowed);
23
25
27
28public:
31 static const int32_t DEFAULT_RESOLUTION;
32
36
37protected:
38 static int64_t resolution;
39 bool greedy;
40
41 int64_t t0;
42 int64_t timeout;
44
45 int32_t docBase;
46
47public:
50 static int64_t getResolution();
51
63 static void setResolution(int64_t newResolution);
64
66 static void stopTimer();
67
73 bool isGreedy();
74
78 void setGreedy(bool greedy);
79
82 virtual void collect(int32_t doc);
83
84 virtual void setNextReader(const IndexReaderPtr& reader, int32_t docBase);
85 virtual void setScorer(const ScorerPtr& scorer);
86 virtual bool acceptsDocsOutOfOrder();
87
88protected:
91
92 friend class TimerThread;
93};
94
95}
96
97#endif
#define LUCENE_CLASS(Name)
Definition LuceneObject.h:24
Collectors are primarily meant to be used to gather raw results from a search, and implement sorting ...
Definition Collector.h:100
The TimeLimitingCollector is used to timeout search requests that take longer than the maximum allowe...
Definition TimeLimitingCollector.h:17
void setGreedy(bool greedy)
Sets whether this time limited collector is greedy.
static void stopTimer()
Stop timer thread.
virtual bool acceptsDocsOutOfOrder()
Return true if this collector does not require the matching docIDs to be delivered in int sort order ...
static TimerThreadPtr TIMER_THREAD()
Initialize a single static timer thread to be used by all TimeLimitedCollector instances.
bool greedy
Definition TimeLimitingCollector.h:39
static void setResolution(int64_t newResolution)
Set the timer resolution. The default timer resolution is 20 milliseconds. This means that a search r...
static int64_t getResolution()
Return the timer resolution.
static int64_t resolution
Definition TimeLimitingCollector.h:38
virtual void collect(int32_t doc)
Calls Collector#collect(int) on the decorated Collector unless the allowed time has passed,...
int32_t docBase
Definition TimeLimitingCollector.h:45
static const int32_t DEFAULT_RESOLUTION
Default timer resolution.
Definition TimeLimitingCollector.h:31
int64_t timeout
Definition TimeLimitingCollector.h:42
CollectorPtr collector
Definition TimeLimitingCollector.h:43
virtual void setScorer(const ScorerPtr &scorer)
Called before successive calls to collect(int32_t). Implementations that need the score of the curren...
virtual void setNextReader(const IndexReaderPtr &reader, int32_t docBase)
Called before collecting from each IndexReader. All doc ids in collect(int32_t) will correspond to re...
TimeLimitingCollector(const CollectorPtr &collector, int64_t timeAllowed)
Create a TimeLimitedCollector wrapper over another Collector with a specified timeout.
bool DEFAULT_GREEDY
Default for isGreedy().
Definition TimeLimitingCollector.h:35
int64_t t0
Definition TimeLimitingCollector.h:41
bool isGreedy()
Checks if this time limited collector is greedy in collecting the last hit. A non greedy collector,...
Definition AbstractAllTermDocs.h:12
boost::shared_ptr< TimerThread > TimerThreadPtr
Definition LuceneTypes.h:470
boost::shared_ptr< Collector > CollectorPtr
Definition LuceneTypes.h:295
boost::shared_ptr< IndexReader > IndexReaderPtr
Definition LuceneTypes.h:157
boost::shared_ptr< Scorer > ScorerPtr
Definition LuceneTypes.h:429

clucene.sourceforge.net