FilterWeight (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.search, class: FilterWeight

Package org.apache.lucene.search

# Class FilterWeight

java.lang.Object
org.apache.lucene.search.Weight
org.apache.lucene.search.FilterWeight

All Implemented Interfaces:
  `SegmentCacheable`

public abstract class FilterWeight extends Weight
A `FilterWeight` contains another `Weight` and implements all abstract methods by calling the contained weight's method.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- ## Nested Class Summary

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

  `Weight.DefaultBulkScorer, Weight.DefaultScorerSupplier`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final Weight`
  `in`

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

  `parentQuery`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `FilterWeight(Query query, Weight weight)`
  Alternative constructor.
  `protected`
  `FilterWeight(Weight weight)`
  Default constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `count(LeafReaderContext context)`
  Counts the number of live documents that match a given `Weight.parentQuery` in a leaf.
  `Explanation`
  `explain(LeafReaderContext context, int doc)`
  An explanation of the score computation for the named document.
  `boolean`
  `isCacheable(LeafReaderContext ctx)`
  `Matches`
  `matches(LeafReaderContext context, int doc)`
  Returns `Matches` for a specific document, or `null` if the document does not match the parent query
  `ScorerSupplier`
  `scorerSupplier(LeafReaderContext context)`
  Get a `ScorerSupplier`, which allows knowing the cost of the `Scorer` before building it.

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

  `bulkScorer, getQuery, scorer`

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

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

- ## Field Details

  - ### in

    protected final Weight in

- ## Constructor Details

  - ### FilterWeight

    protected FilterWeight(Weight weight)
    Default constructor.

  - ### FilterWeight

    protected FilterWeight(Query query, Weight weight)
    Alternative constructor. Use this variant only if the `weight` was not obtained via the `Query.createWeight(IndexSearcher, ScoreMode, float)` method of the `query` object.

- ## Method Details

  - ### isCacheable

    public boolean isCacheable(LeafReaderContext ctx)
    Returns:
      `true` if the object can be cached against a given leaf

  - ### explain

    public Explanation explain(LeafReaderContext context, int doc) throws IOException
    Description copied from class: `Weight`
    An explanation of the score computation for the named document.
    Specified by:
      `explain` in class `Weight`
    Parameters:
      `context` - the readers context to create the `Explanation` for.
      `doc` - the document's id relative to the given context's reader
    Returns:
      an Explanation for the score
    Throws:
      `IOException` - if an `IOException` occurs

  - ### matches

    public Matches matches(LeafReaderContext context, int doc) throws IOException
    Description copied from class: `Weight`
    Returns `Matches` for a specific document, or `null` if the document does not match the parent query

    A query match that contains no position information (for example, a Point or DocValues query) will return `MatchesUtils.MATCH_WITH_NO_TERMS`

    Overrides:
      `matches` in class `Weight`
    Parameters:
      `context` - the reader's context to create the `Matches` for
      `doc` - the document's id relative to the given context's reader
    Throws:
      `IOException`

  - ### scorerSupplier

    public ScorerSupplier scorerSupplier(LeafReaderContext context) throws IOException
    Description copied from class: `Weight`
    Get a `ScorerSupplier`, which allows knowing the cost of the `Scorer` before building it. A scorer supplier for the same `LeafReaderContext` instance may be requested multiple times as part of a single search call.

    Note: It must return null if the scorer is null.

    Specified by:
      `scorerSupplier` in class `Weight`
    Parameters:
      `context` - the leaf reader context
    Returns:
      a `ScorerSupplier` providing the scorer, or null if scorer is null
    Throws:
      `IOException` - if an IOException occurs
    See Also:
      - `Scorer`
      - `Weight.DefaultScorerSupplier`

  - ### count

    public int count(LeafReaderContext context) throws IOException
    Description copied from class: `Weight`
    Counts the number of live documents that match a given `Weight.parentQuery` in a leaf.

    The default implementation returns -1 for every query. This indicates that the count could not be computed in sub-linear time.

    Specific query classes should override it to provide other accurate sub-linear implementations (that actually return the count). Look at `MatchAllDocsQuery.createWeight(IndexSearcher, ScoreMode, float)` for an example

    We use this property of the function to count hits in `IndexSearcher.count(Query)`.

    Overrides:
      `count` in class `Weight`
    Parameters:
      `context` - the `LeafReaderContext` for which to return the count.
    Returns:
      integer count of the number of matches
    Throws:
      `IOException` - if there is a low-level I/O error