lucene.search.Weight
org.apache.lucene.search
Class Weight
java.lang.Object org.apache.lucene.search.Weight
- All Implemented Interfaces:
- Serializable
- Direct Known Subclasses:
- BooleanQuery.BooleanWeight, ConstantScoreQuery.ConstantWeight, DisjunctionMaxQuery.DisjunctionMaxWeight, SpanWeight
public abstract class Weightextends Object implements Serializable
Expert: Calculate query weights and build query scorers.
The purpose of Weight
is to ensure searching does not modify a Query
, so that a Query
instance can be reused. Searcher
dependent state of the query should reside in the Weight
. IndexReader
dependent state should reside in the Scorer
.
A Weight
is used in the following way:
- A
Weight
is constructed by a top-level query, given aSearcher
(Query.createWeight(Searcher)
). - The
sumOfSquaredWeights()
method is called on theWeight
to compute the query normalization factorSimilarity.queryNorm(float)
of the query clauses contained in the query. - The query normalization factor is passed to
normalize(float)
. At this point the weighting is complete. - A
Scorer
is constructed byscorer(IndexReader,boolean,boolean)
.