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.