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

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 {} 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< DisjunctionSumScorer > | shared_from_this ()
virtual void | initialize ()
| Called directly after instantiation to create objects that depend on this object being fully constructed. More...
virtual void | score (const CollectorPtr &collector)
| Scores and collects all matching documents. More...
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. More...
virtual double | score ()
| Returns the score of the current document matching the query. Initially invalid, until next() is called the first time. More...
virtual int32_t | docID ()
| Returns the following: More...
int32_t | nrMatchers ()
| Returns the number of subscorers matching the current document. Initially invalid, until next() is called the first time. More...
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. More...
Public Member Functions inherited from Lucene::Scorer
| Scorer (const SimilarityPtr &similarity)
| Constructs a Scorer. More...
| Scorer (const WeightPtr &weight)
virtual | ~Scorer ()
boost::shared_ptr< Scorer > | shared_from_this ()
SimilarityPtr | getSimilarity ()
| Returns the Similarity implementation used by this scorer. More...
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< DocIdSetIterator > | shared_from_this ()
Public Member Functions inherited from Lucene::LuceneObject
virtual | ~LuceneObject ()
virtual LuceneObjectPtr | clone (const LuceneObjectPtr &other=LuceneObjectPtr())
| Return clone of this object. More...
virtual int32_t | hashCode ()
| Return hash code for this object. More...
virtual bool | equals (const LuceneObjectPtr &other)
| Return whether two objects are equal. More...
virtual int32_t | compareTo (const LuceneObjectPtr &other)
| Compare two objects. More...
virtual String | toString ()
| Returns a string representation of the object. More...
Public Member Functions inherited from Lucene::LuceneSync
virtual | ~LuceneSync ()
virtual SynchronizePtr | getSync ()
| Return this object synchronize lock. More...
virtual LuceneSignalPtr | getSignal ()
| Return this object signal. More...
virtual void | lock (int32_t timeout=0)
| Lock this object using an optional timeout. More...
virtual void | unlock ()
| Unlock this object. More...
virtual bool | holdsLock ()
| Returns true if this object is currently locked by current thread. More...
virtual void | wait (int32_t timeout=0)
| Wait for signal using an optional timeout. More...
virtual void | notifyAll ()
| Notify all threads waiting for signal. More...

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

## Protected Attributes

int32_t | nrScorers
| The number of subscorers. More...
Collection< ScorerPtr > | subScorers
| The subscorers. More...
int32_t | minimumNrMatchers
| The minimum number of scorers that should match. More...
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. More...
int32_t | currentDoc
| The document number of the current match. More...
int32_t | _nrMatchers
| The number of subscorers that provide the current match. More...
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. More...

## Detailed Description

A Scorer for OR like queries, counterpart of ConjunctionScorer. This Scorer implements {} 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 | ( |  | ) |

inline static

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

Returns the following:

- -1 or NO_MORE_DOCS if nextDoc() or advance(int) were not called yet.
- NO_MORE_DOCS if the iterator has exhausted.
- Otherwise it should return the doc ID it is currently on.

Implements Lucene::DocIdSetIterator.

## ◆ getClassName()

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

inline virtual

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

  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
| ) |  |

protected virtual

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()

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:

- DisjunctionSumScorer.h

clucene.sourceforge.net