lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adrien Grand (JIRA)" <j...@apache.org>
Subject [jira] [Created] (LUCENE-8177) BlockMaxConjunctionScorer should compute better lower bounds of the required scores
Date Mon, 19 Feb 2018 10:42:01 GMT
Adrien Grand created LUCENE-8177:
------------------------------------

             Summary: BlockMaxConjunctionScorer should compute better lower bounds of the
required scores
                 Key: LUCENE-8177
                 URL: https://issues.apache.org/jira/browse/LUCENE-8177
             Project: Lucene - Core
          Issue Type: Bug
            Reporter: Adrien Grand


Assuming N scorers, {{BlockMaxConjunctionScorer}} computes a lower bound of the sum of scores
for scorers 0..i, for any given 0 <= i < N.

For instance say you are searching for "quick AND fox", that a hit needs a score of 4 to be
competitive and that "quick" contributes at most 3 to the score and "fox" 2. This means that
for a given hit to be competitive, the sum of scores must be at least 4-maxScore(fox)=4-2=2
after having scored "quick" and 4 after having scored "fox".

Currently we have this in BlockMaxConjunctionScorer:
{code:java}
// Also compute the minimum required scores for a hit to be competitive
// A double that is less than 'score' might still be converted to 'score'
// when casted to a float, so we go to the previous float to avoid this issue
minScores[minScores.length - 1] = minScore > 0 ? Math.nextDown(minScore)
{code}

We currently use {{Math.minDown(float)}} to be safe, but we would get a better bound by computing
the lowest double that is converted to {{minScore}} when casted to a float.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message