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


Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
Lucene::DisjunctionSumScorer Class Reference

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>

+ Inheritance diagram for Lucene::DisjunctionSumScorer:

Public Member Functions

 DisjunctionSumScorer (Collection< ScorerPtr > subScorers, int32_t minimumNrMatchers=1)
 
virtual ~DisjunctionSumScorer ()
 
virtual String getClassName ()
 
boost::shared_ptr< DisjunctionSumScorershared_from_this ()
 
virtual void initialize ()
 Called directly after instantiation to create objects that depend on this object being fully constructed.
 
virtual void score (const CollectorPtr &collector)
 Scores and collects all matching documents.
 
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 there are no more docs in the set.
 
virtual double score ()
 Returns the score of the current document matching the query. Initially invalid, until next() is called the first time.
 
virtual int32_t docID ()
 Returns the following:
 
int32_t nrMatchers ()
 Returns the number of subscorers matching the current document. Initially invalid, until next() is called the first time.
 
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 given target. The implementation uses the skipTo() method on the subscorers.
 
- Public Member Functions inherited from Lucene::Scorer
 Scorer (const SimilarityPtr &similarity)
 Constructs a Scorer.
 
 Scorer (const WeightPtr &weight)
 
virtual ~Scorer ()
 
boost::shared_ptr< Scorershared_from_this ()
 
SimilarityPtr getSimilarity ()
 Returns the Similarity implementation used by this scorer.
 
void visitSubScorers (QueryPtr parent, BooleanClause::Occur relationship, ScorerVisitor *visitor)
 
void visitScorers (ScorerVisitor *visitor)
 
virtual float termFreq ()
 
- Public Member Functions inherited from Lucene::DocIdSetIterator
virtual ~DocIdSetIterator ()
 
boost::shared_ptr< DocIdSetIteratorshared_from_this ()
 
- Public Member Functions inherited from Lucene::LuceneObject
virtual ~LuceneObject ()
 
virtual LuceneObjectPtr clone (const LuceneObjectPtr &other=LuceneObjectPtr())
 Return clone of this object.
 
virtual int32_t hashCode ()
 Return hash code for this object.
 
virtual bool equals (const LuceneObjectPtr &other)
 Return whether two objects are equal.
 
virtual int32_t compareTo (const LuceneObjectPtr &other)
 Compare two objects.
 
virtual String toString ()
 Returns a string representation of the object.
 
- Public Member Functions inherited from Lucene::LuceneSync
virtual ~LuceneSync ()
 
virtual SynchronizePtr getSync ()
 Return this object synchronize lock.
 
virtual LuceneSignalPtr getSignal ()
 Return this object signal.
 
virtual void lock (int32_t timeout=0)
 Lock this object using an optional timeout.
 
virtual void unlock ()
 Unlock this object.
 
virtual bool holdsLock ()
 Returns true if this object is currently locked by current thread.
 
virtual void wait (int32_t timeout=0)
 Wait for signal using an optional timeout.
 
virtual void notifyAll ()
 Notify all threads waiting for signal.
 

Static Public Member Functions

static String _getClassName ()
 
- Static Public Member Functions inherited from Lucene::Scorer
static String _getClassName ()
 
- Static Public Member Functions inherited from Lucene::DocIdSetIterator
static String _getClassName ()
 

Protected Member Functions

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.
 
- Protected Member Functions inherited from Lucene::LuceneObject
 LuceneObject ()
 

Protected Attributes

int32_t nrScorers
 The number of subscorers.
 
Collection< ScorerPtrsubScorers
 The subscorers.
 
int32_t minimumNrMatchers
 The minimum number of scorers that should match.
 
ScorerDocQueuePtr 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.
 
int32_t currentDoc
 The document number of the current match.
 
int32_t _nrMatchers
 The number of subscorers that provide the current match.
 
double currentScore
 
- Protected Attributes inherited from Lucene::Scorer
SimilarityPtr similarity
 
- Protected Attributes inherited from Lucene::LuceneSync
SynchronizePtr objectLock
 
LuceneSignalPtr objectSignal
 

Additional Inherited Members

- Data Fields inherited from Lucene::Scorer
WeightPtr weight
 
- Static Public Attributes inherited from Lucene::DocIdSetIterator
static const int32_t NO_MORE_DOCS
 When returned by nextDoc(), advance(int) and docID() it means there are no more docs in the iterator.
 

Detailed Description

A Scorer for OR like queries, counterpart of ConjunctionScorer. This Scorer implements Scorer#skipTo(int32_t) and uses skipTo() on the given Scorers.

Constructor & Destructor Documentation

◆ DisjunctionSumScorer()

Lucene::DisjunctionSumScorer::DisjunctionSumScorer ( Collection< ScorerPtr subScorers,
int32_t  minimumNrMatchers = 1 
)

◆ ~DisjunctionSumScorer()

virtual Lucene::DisjunctionSumScorer::~DisjunctionSumScorer ( )
virtual

Member Function Documentation

◆ _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
targetThe 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

Returns the following:

Implements Lucene::DocIdSetIterator.

◆ getClassName()

virtual String Lucene::DisjunctionSumScorer::getClassName ( )
inlinevirtual

Reimplemented from Lucene::Scorer.

Reimplemented in Lucene::CountingDisjunctionSumScorer.

◆ 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

Returns the score of the current document matching the query. Initially invalid, until next() is called the first time.

Implements Lucene::Scorer.

Reimplemented in Lucene::CountingDisjunctionSumScorer.

◆ score() [2/3]

virtual void Lucene::DisjunctionSumScorer::score ( const CollectorPtr collector)
virtual

Scores and collects all matching documents.

Parameters
collectorThe 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
collectorThe collector to which all matching documents are passed through.
maxDo not score documents past this.
Returns
true if more matching documents may remain.

Reimplemented from Lucene::Scorer.

◆ shared_from_this()

boost::shared_ptr< DisjunctionSumScorer > Lucene::DisjunctionSumScorer::shared_from_this ( )
inline

Field Documentation

◆ _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

ScorerDocQueuePtr Lucene::DisjunctionSumScorer::scorerDocQueue
protected

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

Collection<ScorerPtr> Lucene::DisjunctionSumScorer::subScorers
protected

The subscorers.


The documentation for this class was generated from the following file:

clucene.sourceforge.net