[ 
https://issues.apache.org/jira/browse/LUCENE-8405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Adrien Grand resolved LUCENE-8405.
----------------------------------
    Resolution: Fixed

> Remove TopHits.maxScore
> -----------------------
>
>                 Key: LUCENE-8405
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8405
>             Project: Lucene - Core
>          Issue Type: Task
>            Reporter: Adrien Grand
>            Priority: Major
>             Fix For: master (8.0)
>
>         Attachments: LUCENE-8405.patch, LUCENE-8405.patch
>
>
> I would like to propose removing TopDocs.maxScore. The reasoning is that 
> either you are sorting by score and then its value is easy to access via the 
> score of the best hit. Or you sort by one or more fields and computing it is 
> wasteful:
>  - term frequencies and norms need to be read and decoded for every match
>  - scores need to be computed on every match
>  - early-termination optimizations are disabled
> It would be more efficient to collect hits twice: once with scores disabled 
> to get the top hits, and once to get the best score which would run 
> efficiently thanks to impacts and MAXSCORE, especially with a size of 1:
> {code:java}
> TopDocs topHits = searcher.search(query, 1);
> float maxScore = topHits.scoreDocs.length == 0 ? Float.NaN : 
> topHits.scoreDocs[0].score;
> {code}
> The {{doDocScores}} option of TopFieldCollector has drawbacks as well but at 
> least doesn't disable early-termination optimizations and doesn't require 
> scores to be computed on every hit.
> As this would be a significant breaking change, I'm targeting 8.0.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to