Expert: Calculate query weights and build query scorers.
The purpose of Weight is to make it so that 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 a Searcher ({@link Query#createWeight(Searcher)}).
- The {@link #sumOfSquaredWeights()} method is called
on the
Weight to compute
the query normalization factor {@link Similarity#queryNorm(float)}
of the query clauses contained in the query.
- The query normalization factor is passed to {@link #normalize(float)}.
At this point the weighting is complete.
- A
Scorer is constructed by {@link #scorer(IndexReader)}.
|