public class

ScoreCachingWrappingScorer

extends Scorer
java.lang.Object
   ↳ org.apache.lucene.search.DocIdSetIterator
     ↳ org.apache.lucene.search.Scorer
       ↳ org.apache.lucene.search.ScoreCachingWrappingScorer

Class Overview

A Scorer which wraps another scorer and caches the score of the current document. Successive calls to score() will return the same result and will not invoke the wrapped Scorer's score() method, unless the current document has changed.
This class might be useful due to the changes done to the Collector interface, in which the score is not computed for a document by default, only if the collector requests it. Some collectors may need to use the score in several places, however all they have in hand is a Scorer object, and might end up computing the score of a document more than once.

Summary

[Expand]
Inherited Constants
From class org.apache.lucene.search.DocIdSetIterator
Public Constructors
ScoreCachingWrappingScorer(Scorer scorer)
Creates a new instance by wrapping the given scorer.
Public Methods
int advance(int target)
Advances to the first beyond the current whose document number is greater than or equal to target.
int docID()
Returns the following:
Similarity getSimilarity()
Returns the Similarity implementation used by this scorer.
int 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.
void score(Collector collector)
Scores and collects all matching documents.
float score()
Returns the score of the current document matching the query.
Protected Methods
boolean score(Collector collector, int max, int firstDocID)
Expert: Collects matching documents in a range.
[Expand]
Inherited Methods
From class org.apache.lucene.search.Scorer
From class org.apache.lucene.search.DocIdSetIterator
From class java.lang.Object

Public Constructors

public ScoreCachingWrappingScorer (Scorer scorer)

Creates a new instance by wrapping the given scorer.

Public Methods

public int advance (int target)

Advances to the first beyond the current whose document number is greater than or equal to target. Returns the current document number or NO_MORE_DOCS if there are no more docs in the set.

Behaves as if written:

 int advance(int target) {
   int doc;
   while ((doc = nextDoc()) < target) {
   }
   return doc;
 }
 
Some implementations are considerably more efficient than that.

NOTE: certain implementations may return a different value (each time) if called several times in a row with the same target.

NOTE: this method may be called with {@value #NO_MORE_DOCS} for efficiency by some Scorers. If your implementation cannot efficiently determine that it should exhaust, it is recommended that you check for that value in each call to this method.

NOTE: after the iterator has exhausted you should not call this method, as it may result in unpredicted behavior.

Throws
IOException

public int docID ()

Returns the following:

public Similarity getSimilarity ()

Returns the Similarity implementation used by this scorer.

public int 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.
NOTE: after the iterator has exhausted you should not call this method, as it may result in unpredicted behavior.

Throws
IOException

public void score (Collector collector)

Scores and collects all matching documents.

Parameters
collector The collector to which all matching documents are passed.
Throws
IOException

public float score ()

Returns the score of the current document matching the query. Initially invalid, until nextDoc() or advance(int) is called the first time, or when called from within collect(int).

Throws
IOException

Protected Methods

protected boolean score (Collector collector, int max, int firstDocID)

Expert: Collects matching documents in a range. Hook for optimization. Note, firstDocID is added to ensure that nextDoc() was called before this method.

Parameters
collector The collector to which all matching documents are passed.
max Do not score documents past this.
firstDocID The first document ID (ensures nextDoc() is called before this method.
Returns
  • true if more matching documents may remain.
Throws
IOException