A Scorer for OR like queries, counterpart of ConjunctionScorer. This Scorer implements Scorer#skipTo(int32_t)
and uses skipTo() on the given Scorers.
More...
#include <DisjunctionSumScorer.h>
|
void | initScorerDocQueue () |
| Called the first time next() or skipTo() is called to initialize scorerDocQueue.
|
|
virtual bool | score (const CollectorPtr &collector, int32_t max, int32_t firstDocID) |
| Collects matching documents in a range. Hook for optimization. Note that next() must be called once before this method is called for the first time.
|
|
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.
|
|
| LuceneObject () |
|
A Scorer for OR like queries, counterpart of ConjunctionScorer. This Scorer implements Scorer#skipTo(int32_t)
and uses skipTo() on the given Scorers.
◆ DisjunctionSumScorer()
Lucene::DisjunctionSumScorer::DisjunctionSumScorer |
( |
Collection< ScorerPtr > |
subScorers, |
|
|
int32_t |
minimumNrMatchers = 1 |
|
) |
| |
◆ ~DisjunctionSumScorer()
virtual Lucene::DisjunctionSumScorer::~DisjunctionSumScorer |
( |
| ) |
|
|
virtual |
◆ _getClassName()
static String Lucene::DisjunctionSumScorer::_getClassName |
( |
| ) |
|
|
inlinestatic |
◆ advance()
virtual int32_t Lucene::DisjunctionSumScorer::advance |
( |
int32_t |
target | ) |
|
|
virtual |
Advances to the first match beyond the current whose document number is greater than or equal to a given target. The implementation uses the skipTo() method on the subscorers.
- Parameters
-
target | The target document number. |
- Returns
- the document whose number is greater than or equal to the given target, or -1 if none exist.
Implements Lucene::DocIdSetIterator.
◆ advanceAfterCurrent()
bool Lucene::DisjunctionSumScorer::advanceAfterCurrent |
( |
| ) |
|
|
protected |
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.
- Returns
- true if there is a match. In case there is a match, currentDoc, currentSumScore and nrMatchers describe the match.
◆ docID()
virtual int32_t Lucene::DisjunctionSumScorer::docID |
( |
| ) |
|
|
virtual |
◆ getClassName()
virtual String Lucene::DisjunctionSumScorer::getClassName |
( |
| ) |
|
|
inlinevirtual |
◆ initialize()
virtual void Lucene::DisjunctionSumScorer::initialize |
( |
| ) |
|
|
virtual |
Called directly after instantiation to create objects that depend on this object being fully constructed.
Reimplemented from Lucene::LuceneObject.
◆ initScorerDocQueue()
void Lucene::DisjunctionSumScorer::initScorerDocQueue |
( |
| ) |
|
|
protected |
Called the first time next() or skipTo() is called to initialize scorerDocQueue.
◆ nextDoc()
virtual int32_t Lucene::DisjunctionSumScorer::nextDoc |
( |
| ) |
|
|
virtual |
Advances to the next document in the set and returns the doc it is currently on, or NO_MORE_DOCS
if there are no more docs in the set.
NOTE: after the iterator has exhausted you should not call this method, as it may result in unpredicted behaviour.
Implements Lucene::DocIdSetIterator.
◆ nrMatchers()
int32_t Lucene::DisjunctionSumScorer::nrMatchers |
( |
| ) |
|
Returns the number of subscorers matching the current document. Initially invalid, until next()
is called the first time.
◆ score() [1/3]
virtual double Lucene::DisjunctionSumScorer::score |
( |
| ) |
|
|
virtual |
◆ score() [2/3]
virtual void Lucene::DisjunctionSumScorer::score |
( |
const CollectorPtr & |
collector | ) |
|
|
virtual |
Scores and collects all matching documents.
- Parameters
-
collector | The collector to which all matching documents are passed. |
Reimplemented from Lucene::Scorer.
◆ score() [3/3]
virtual bool Lucene::DisjunctionSumScorer::score |
( |
const CollectorPtr & |
collector, |
|
|
int32_t |
max, |
|
|
int32_t |
firstDocID |
|
) |
| |
|
protectedvirtual |
Collects matching documents in a range. Hook for optimization. Note that next()
must be called once before this method is called for the first time.
- Parameters
-
collector | The collector to which all matching documents are passed through. |
max | Do not score documents past this. |
- Returns
- true if more matching documents may remain.
Reimplemented from Lucene::Scorer.
◆ shared_from_this()
◆ _nrMatchers
int32_t Lucene::DisjunctionSumScorer::_nrMatchers |
|
protected |
The number of subscorers that provide the current match.
◆ currentDoc
int32_t Lucene::DisjunctionSumScorer::currentDoc |
|
protected |
The document number of the current match.
◆ currentScore
double Lucene::DisjunctionSumScorer::currentScore |
|
protected |
◆ minimumNrMatchers
int32_t Lucene::DisjunctionSumScorer::minimumNrMatchers |
|
protected |
The minimum number of scorers that should match.
◆ nrScorers
int32_t Lucene::DisjunctionSumScorer::nrScorers |
|
protected |
The number of subscorers.
◆ scorerDocQueue
The scorerDocQueue contains all subscorers ordered by their current doc(), with the minimum at the top. The scorerDocQueue is initialized the first time next() or skipTo() is called. An exhausted scorer is immediately removed from the scorerDocQueue. If less than the minimumNrMatchers scorers remain in the scorerDocQueue next() and skipTo() return false.
After each to call to next() or skipTo() currentSumScore is the total score of the current matching doc, nrMatchers is the number of matching scorers, and all scorers are after the matching doc, or are exhausted.
◆ subScorers
The documentation for this class was generated from the following file: