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


 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
DisjunctionSumScorer.h
Go to the documentation of this file.
1 // 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 DISJUNCTIONSUMSCORER_H
8 #define DISJUNCTIONSUMSCORER_H
9 
10 #include "Scorer.h"
11 
12 namespace Lucene {
13 
16 class DisjunctionSumScorer : public Scorer {
17 public:
19  virtual ~DisjunctionSumScorer();
20 
22 
23 protected:
25  int32_t nrScorers;
26 
29 
32 
41 
43  int32_t currentDoc;
44 
46  int32_t _nrMatchers;
47 
48  double currentScore;
49 
50 public:
51  virtual void initialize();
52 
53  virtual void score(const CollectorPtr& collector);
54  virtual int32_t nextDoc();
55 
58  virtual double score();
59 
60  virtual int32_t docID();
61 
64  int32_t nrMatchers();
65 
71  virtual int32_t advance(int32_t target);
72 
73 protected:
75  void initScorerDocQueue();
76 
82  virtual bool score(const CollectorPtr& collector, int32_t max, int32_t firstDocID);
83 
90  bool advanceAfterCurrent();
91 };
92 
93 }
94 
95 #endif
double currentScore
Definition: DisjunctionSumScorer.h:48
void initScorerDocQueue()
Called the first time next() or skipTo() is called to initialize scorerDocQueue.
virtual int32_t nextDoc()
Advances to the next document in the set and returns the doc it is currently on, or NO_MORE_DOCS if t...
int32_t currentDoc
The document number of the current match.
Definition: DisjunctionSumScorer.h:43
ScorerDocQueuePtr scorerDocQueue
The scorerDocQueue contains all subscorers ordered by their current doc(), with the minimum at the to...
Definition: DisjunctionSumScorer.h:40
virtual int32_t docID()
Returns the following:
boost::shared_ptr< ScorerDocQueue > ScorerDocQueuePtr
Definition: LuceneTypes.h:549
virtual double score()
Returns the score of the current document matching the query. Initially invalid, until next() is call...
int32_t minimumNrMatchers
The minimum number of scorers that should match.
Definition: DisjunctionSumScorer.h:31
int32_t nrScorers
The number of subscorers.
Definition: DisjunctionSumScorer.h:21
int32_t _nrMatchers
The number of subscorers that provide the current match.
Definition: DisjunctionSumScorer.h:46
Common scoring functionality for different types of queries.
Definition: Scorer.h:22
boost::shared_ptr< Collector > CollectorPtr
Definition: LuceneTypes.h:295
bool advanceAfterCurrent()
Advance all subscorers after the current document determined by the top of the scorerDocQueue. Repeat until at least the minimum number of subscorers match on the same document and all subscorers are after that document or are exhausted. On entry the scorerDocQueue has at least minimumNrMatchers available. At least the scorer with the minimum document number will be advanced.
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
virtual int32_t advance(int32_t target)
Advances to the first match beyond the current whose document number is greater than or equal to a gi...
Definition: AbstractAllTermDocs.h:12
A Scorer for OR like queries, counterpart of ConjunctionScorer. This Scorer implements Scorer#skipTo(...
Definition: DisjunctionSumScorer.h:16
Collection< ScorerPtr > subScorers
The subscorers.
Definition: DisjunctionSumScorer.h:28
virtual void initialize()
Called directly after instantiation to create objects that depend on this object being fully construc...
int32_t nrMatchers()
Returns the number of subscorers matching the current document. Initially invalid, until next() is called the first time.
DisjunctionSumScorer(Collection< ScorerPtr > subScorers, int32_t minimumNrMatchers=1)

clucene.sourceforge.net