org.apache.lucene.search

Interface Weight

public interface Weight extends Serializable

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:

  1. A Weight is constructed by a top-level query, given a Searcher ({@link Query#createWeight(Searcher)}).
  2. 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.
  3. The query normalization factor is passed to {@link #normalize(float)}. At this point the weighting is complete.
  4. A Scorer is constructed by {@link #scorer(IndexReader)}.
Method Summary
Explanationexplain(IndexReader reader, int doc)
An explanation of the score computation for the named document.
QuerygetQuery()
The query that this concerns.
floatgetValue()
The weight for this query.
voidnormalize(float norm)
Assigns the query normalization factor to this.
Scorerscorer(IndexReader reader)
Constructs a scorer for this.
floatsumOfSquaredWeights()
The sum of squared weights of contained query clauses.

Method Detail

explain

public Explanation explain(IndexReader reader, int doc)
An explanation of the score computation for the named document.

getQuery

public Query getQuery()
The query that this concerns.

getValue

public float getValue()
The weight for this query.

normalize

public void normalize(float norm)
Assigns the query normalization factor to this.

scorer

public Scorer scorer(IndexReader reader)
Constructs a scorer for this.

sumOfSquaredWeights

public float sumOfSquaredWeights()
The sum of squared weights of contained query clauses.
Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.