lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Elschot <>
Subject Re: Scoring in MatchAllDocsQuery & ConstantScoreQuery
Date Sat, 25 Nov 2006 11:06:18 GMT
On Saturday 25 November 2006 07:59, Otis Gospodnetic wrote:
> Hi,
> Poking around Query/Weight/Scorer classes I finally started understanding 
how some portions of the scoring works (imagine a lot of lightbulbs now).  In 
one of my Lucene use-cases I really just use it to pull N documents from an 
index, and don't care for score (I sort by time).  That lead me to look at 
MatchAllDocsQuery and ConstantScoreQuery.  I see they don't do anything with 
IDF nor anything fancy with Similarity, and instead both queries return a 
score equal to the query boost.  Still, why do they even bother with the 
multiplications in sumOfSquaredWeights() and normalize(float) methods?
>     public float sumOfSquaredWeights() {
>       queryWeight = getBoost();
>       return queryWeight * queryWeight;
>     }
>     public void normalize(float queryNorm) {
>       this.queryNorm = queryNorm;
>       queryWeight *= this.queryNorm;
>     }
> Shouldn't that queryWeight = getBoost() be enough to get the query boost and 
use it as a score?
> Obviously, not all lightbulbs are on yet...

When you don't need score values, you can use only next(), skipTo() and doc() 
on a Scorer. Btw. a Scorer without a score() method is called a Matcher here:
There is a Matcher.collect() to collect all matching docs without score 
values. That code will also work on a Scorer. Scorer inherits
from Matcher in the patch.

Paul Elschot

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message