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

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier | Constructor and Description
    --- | ---
    `protected` | `Scorer(Weight weight)` Constructs a Scorer

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.