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 that `FilterWeight` does not override the non-abstract `Weight.bulkScorer(LeafReaderContext)` method and subclasses of `FilterWeight` must provide their bulkScorer implementation if required.
  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.StartDISIWrapper`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Weight` | `in`

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

      `parentQuery`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Explanation` | `explain(LeafReaderContext context, int doc)` An explanation of the score computation for the named document.
    `void` | `extractTerms(Set<Term> terms)` Expert: adds all terms occurring in this query to the terms set.
    `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 A query match that contains no position information (for example, a Point or DocValues query) will return `MatchesUtils.MATCH_WITH_NO_TERMS`
    `Scorer` | `scorer(LeafReaderContext context)` Returns a `Scorer` which can iterate in order over all matching documents and assign them a score.

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

      `bulkScorer, getQuery, scorerSupplier`

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

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

- - ### Field Detail

    - #### in

          protected final Weight in

  - ### Constructor Detail

    - #### 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 Detail

    - #### isCacheable

          public boolean isCacheable(LeafReaderContext ctx)

      Returns:
        `true` if the object can be cached against a given leaf

    - #### extractTerms

          public void extractTerms(Set<Term> terms)

      Description copied from class: `Weight`
      Expert: adds all terms occurring in this query to the terms set. If the `Weight` was created with `needsScores == true` then this method will only extract terms which are used for scoring, otherwise it will extract all terms which are used for matching.
      Specified by:
        `extractTerms` in class `Weight`

    - #### 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

    - #### scorer

          public Scorer scorer(LeafReaderContext context)
                        throws IOException

      Description copied from class: `Weight`
      Returns a `Scorer` which can iterate in order over all matching documents and assign them a score.

      NOTE: null can be returned if no documents will be scored by this query.

      NOTE: The returned `Scorer` does not have `LeafReader.getLiveDocs()` applied, they need to be checked on top.

      Specified by:
        `scorer` in class `Weight`
      Parameters:
        `context` - the `LeafReaderContext` for which to return the `Scorer`.
      Returns:
        a `Scorer` which scores documents in/out-of order.
      Throws:
        `IOException` - if there is a low-level I/O error

    - #### 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`

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