org.apache.lucene.search

## Class Scorer

- java.lang.Object
- - org.apache.lucene.search.Scorable
  - - org.apache.lucene.search.Scorer

Direct Known Subclasses:
  ConstantScoreScorer, FilterScorer, SpanScorer

    public abstract class Scorer
    extends Scorable

Expert: Common scoring functionality for different types of queries.

A `Scorer` exposes an `iterator()` over documents matching a query in increasing order of doc Id.

Document scores are computed using a given `Similarity` implementation.

NOTE: The values Float.Nan, Float.NEGATIVE_INFINITY and Float.POSITIVE_INFINITY are not valid scores. Certain collectors (eg `TopScoreDocCollector`) will not properly collect hits with these scores.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.lucene.search.Scorable

`Scorable.ChildScorable`

### Field Summary

Fields
`protected Weight` `weight` the Scorer's parent Weight

### Constructor Summary

Constructors
`protected` `Scorer(Weight weight)` Constructs a Scorer

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`int` `advanceShallow(int target)` Advance to the block of documents that contains `target` in order to get scoring information about this block.
`abstract float` `getMaxScore(int upTo)` Return the maximum score that documents between the last `target` that this iterator was `shallow-advanced` to included and `upTo` included.
`Weight` `getWeight()` returns parent Weight
`abstract DocIdSetIterator` `iterator()` Return a `DocIdSetIterator` over matching documents.
`TwoPhaseIterator` `twoPhaseIterator()` Optional method: Return a `TwoPhaseIterator` view of this `Scorer`.

### Methods inherited from class org.apache.lucene.search.Scorable

`docID, getChildren, score, setMinCompetitiveScore`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### weight

    protected final Weight weight

the Scorer's parent Weight

### Constructor Detail

#### Scorer

    protected Scorer(Weight weight)

Constructs a Scorer

Parameters:
  `weight` - The scorers `Weight`.

### Method Detail

#### getWeight

    public Weight getWeight()

returns parent Weight

WARNING: This API is experimental and might change in incompatible ways in the next release.

#### iterator

    public abstract DocIdSetIterator iterator()

Return a `DocIdSetIterator` over matching documents. The returned iterator will either be positioned on `-1` if no documents have been scored yet, `DocIdSetIterator.NO_MORE_DOCS` if all documents have been scored already, or the last document id that has been scored otherwise. The returned iterator is a view: calling this method several times will return iterators that have the same state.

#### twoPhaseIterator

    public TwoPhaseIterator twoPhaseIterator()

Optional method: Return a `TwoPhaseIterator` view of this `Scorer`. A return value of `null` indicates that two-phase iteration is not supported. Note that the returned `TwoPhaseIterator`'s `approximation` must advance synchronously with the `iterator()`: advancing the approximation must advance the iterator and vice-versa. Implementing this method is typically useful on `Scorer`s that have a high per-document overhead in order to confirm matches. The default implementation returns `null`.

#### advanceShallow

    public int advanceShallow(int target)
                       throws IOException

Advance to the block of documents that contains `target` in order to get scoring information about this block. This method is implicitly called by `DocIdSetIterator.advance(int)` and `DocIdSetIterator.nextDoc()` on the returned doc ID. Calling this method doesn't modify the current `DocIdSetIterator.docID()`. It returns a number that is greater than or equal to all documents contained in the current block, but less than any doc IDS of the next block. `target` must be >= `Scorable.docID()` as well as all targets that have been passed to `advanceShallow(int)` so far.

Throws:
  `IOException`

#### getMaxScore

    public abstract float getMaxScore(int upTo)
                               throws IOException

Return the maximum score that documents between the last `target` that this iterator was `shallow-advanced` to included and `upTo` included.

Throws:
  `IOException`