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 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.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
`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, count, 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`