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`

### Field Summary

Fields
`protected Weight` `in`

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

`parentQuery`

### Constructor Summary

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

### Method Summary

All Methods Instance Methods Concrete Methods
`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`