Package org.apache.lucene.search

# Class Scorable

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

Direct Known Subclasses:
  `FilterScorable`, `ScoreCachingWrappingScorer`, `Scorer`

public abstract class Scorable extends Object
Allows access to the score of a Query

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final record`
  `Scorable.ChildScorable`
  A child Scorer and its relationship to its parent.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Scorable()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Collection<Scorable.ChildScorable>`
  `getChildren()`
  Returns child sub-scorers positioned on the current document
  `abstract float`
  `score()`
  Returns the score of the current document matching the query.
  `void`
  `setMinCompetitiveScore(float minScore)`
  Optional method: Tell the scorer that its iterator may safely ignore all documents whose score is less than the given `minScore`.
  `float`
  `smoothingScore(int docId)`
  Returns the smoothing score of the current document matching the query.

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

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

- ## Constructor Details

  - ### Scorable

    public Scorable()

- ## Method Details

  - ### score

    public abstract float score() throws IOException
    Returns the score of the current document matching the query.
    Throws:
      `IOException`

  - ### smoothingScore

    public float smoothingScore(int docId) throws IOException
    Returns the smoothing score of the current document matching the query. This score is used when the query/term does not appear in the document, and behaves like an idf. The smoothing score is particularly important when the Scorer returns a product of probabilities so that the document score does not go to zero when one probability is zero. This can return 0 or a smoothing score.

    Smoothing scores are described in many papers, including: Metzler, D. and Croft, W. B. , "Combining the Language Model and Inference Network Approaches to Retrieval," Information Processing and Management Special Issue on Bayesian Networks and Information Retrieval, 40(5), pp.735-750.

    Throws:
      `IOException`

  - ### setMinCompetitiveScore

    public void setMinCompetitiveScore(float minScore) throws IOException
    Optional method: Tell the scorer that its iterator may safely ignore all documents whose score is less than the given `minScore`. This is a no-op by default.

    This method may only be called from collectors that use `ScoreMode.TOP_SCORES`, and successive calls may only set increasing values of `minScore`.

    Throws:
      `IOException`

  - ### getChildren

    public Collection<Scorable.ChildScorable> getChildren() throws IOException
    Returns child sub-scorers positioned on the current document
    Throws:
      `IOException`
    WARNING: This API is experimental and might change in incompatible ways in the next release.