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]