public abstract class Weight extends Object
The purpose of Weight
is to ensure searching does not modify a
Query
, so that a Query
instance can be reused.
IndexSearcher
dependent state of the query should reside in the
Weight
.
LeafReader
dependent state should reside in the Scorer
.
Since Weight
creates Scorer
instances for a given
LeafReaderContext
(scorer(org.apache.lucene.index.LeafReaderContext, Bits)
)
callers must maintain the relationship between the searcher's top-level
IndexReaderContext
and the context used to create a Scorer
.
A Weight
is used in the following way:
Weight
is constructed by a top-level query, given a
IndexSearcher
(Query.createWeight(IndexSearcher, boolean)
).
getValueForNormalization()
method is called on the
Weight
to compute the query normalization factor
Similarity.queryNorm(float)
of the query clauses contained in the
query.
normalize(float, float)
. At
this point the weighting is complete.
Scorer
is constructed by
scorer(org.apache.lucene.index.LeafReaderContext, Bits)
.
Modifier and Type | Field and Description |
---|---|
protected Query |
parentQuery |
Modifier | Constructor and Description |
---|---|
protected |
Weight(Query query)
Sole constructor, typically invoked by sub-classes.
|
Modifier and Type | Method and Description |
---|---|
BulkScorer |
bulkScorer(LeafReaderContext context,
Bits acceptDocs)
Optional method, to return a
BulkScorer to
score the query and send hits to a Collector . |
abstract Explanation |
explain(LeafReaderContext context,
int doc)
An explanation of the score computation for the named document.
|
Query |
getQuery()
The query that this concerns.
|
abstract float |
getValueForNormalization()
The value for normalization of contained query clauses (e.g.
|
abstract void |
normalize(float norm,
float topLevelBoost)
Assigns the query normalization factor and boost from parent queries to this.
|
abstract Scorer |
scorer(LeafReaderContext context,
Bits acceptDocs)
Returns a
Scorer which scores documents in/out-of order according
to scoreDocsInOrder . |
protected final Query parentQuery
protected Weight(Query query)
query
- the parent querypublic abstract Explanation explain(LeafReaderContext context, int doc) throws IOException
context
- the readers context to create the Explanation
for.doc
- the document's id relative to the given context's readerIOException
- if an IOException
occurspublic final Query getQuery()
public abstract float getValueForNormalization() throws IOException
IOException
public abstract void normalize(float norm, float topLevelBoost)
public abstract Scorer scorer(LeafReaderContext context, Bits acceptDocs) throws IOException
Scorer
which scores documents in/out-of order according
to scoreDocsInOrder
.
NOTE: null can be returned if no documents will be scored by this query.
context
- the LeafReaderContext
for which to return the Scorer
.acceptDocs
- Bits that represent the allowable docs to match (typically deleted docs
but possibly filtering other documents)Scorer
which scores documents in/out-of order.IOException
- if there is a low-level I/O errorpublic BulkScorer bulkScorer(LeafReaderContext context, Bits acceptDocs) throws IOException
BulkScorer
to
score the query and send hits to a Collector
.
Only queries that have a different top-level approach
need to override this; the default implementation
pulls a normal Scorer
and iterates and
collects the resulting hits.context
- the LeafReaderContext
for which to return the Scorer
.acceptDocs
- Bits that represent the allowable docs to match (typically deleted docs
but possibly filtering other documents)BulkScorer
which scores documents and
passes them to a collector.IOException
- if there is a low-level I/O errorCopyright © 2000-2015 Apache Software Foundation. All Rights Reserved.