org.apache.lucene.search

## Class Scorer

- java.lang.Object
- - org.apache.lucene.search.DocIdSetIterator
  - - org.apache.lucene.index.DocsEnum
    - - org.apache.lucene.search.Scorer

Direct Known Subclasses:
  ConstantScoreQuery.ConstantScorer, ScoreCachingWrappingScorer, SpanScorer

    public abstract class Scorer
    extends DocsEnum

Expert: Common scoring functionality for different types of queries.

A `Scorer` iterates 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
`static class` `Scorer.ChildScorer` A child Scorer and its relationship to its parent.

### Field Summary

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

### Fields inherited from class org.apache.lucene.index.DocsEnum

`FLAG_FREQS, FLAG_NONE`

### Fields inherited from class org.apache.lucene.search.DocIdSetIterator

`NO_MORE_DOCS`

### Constructor Summary

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

### Method Summary

Methods
`Collection<Scorer.ChildScorer>` `getChildren()` Returns child sub-scorers
`Weight` `getWeight()` returns parent Weight
`abstract float` `score()` Returns the score of the current document matching the query.
`void` `score(Collector collector)` Scores and collects all matching documents.
`boolean` `score(Collector collector, int max, int firstDocID)` Expert: Collects matching documents in a range.

### Methods inherited from class org.apache.lucene.index.DocsEnum

`attributes, freq`

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

`advance, docID, nextDoc`

### 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. in some cases this may be null

### Constructor Detail

#### Scorer

    protected Scorer(Weight weight)

Constructs a Scorer

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

### Method Detail

#### score

    public void score(Collector collector)
               throws IOException

Scores and collects all matching documents.

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

#### score

    public boolean score(Collector collector,
                int max,
                int firstDocID)
                  throws IOException

Expert: Collects matching documents in a range. Hook for optimization. Note, `firstDocID` is added to ensure that `DocIdSetIterator.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 `DocIdSetIterator.nextDoc()` is called before this method.
Returns:
  true if more matching documents may remain.
Throws:
  `IOException`

#### score

    public abstract float score()
                         throws IOException

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

Throws:
  `IOException`

#### getWeight

    public Weight getWeight()

returns parent Weight

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

#### getChildren

    public Collection<Scorer.ChildScorer> getChildren()

Returns child sub-scorers

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