For a long time now, we've been telling people not to compare scores across 
queries, yet we maintain the queryNorm() code as an attempt to do this and the 
javadocs even promote it.  I'm in the process of researching this some more 
(references welcomed), but wanted to hear what people think about it here.  I 
haven't profiled it just yet, but it seems like a good chunk of wasted 
computation to me (loops, divisions and square roots).  At a minimum, I think 
we might be able to refactor the callback mechanism for it just as we did for 
the collectors, such that we push of the actual calculation of the sum of 
squares into Similarity, instead of just doing 1/sqrt(sumSqs).  That way, when 
people want to override queryNorm() to return 1, they are saving more than just 
the 1/sqrt calculation.  I haven't tested it yet, but wanted to find out what 
others think.

Thoughts?

-Grant
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to