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:
http://issues.apache.org/jira/browse/LUCENE-584
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.
Regards,
Paul Elschot
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]