[ 
https://issues.apache.org/jira/browse/LUCENE-9628?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17242585#comment-17242585
 ] 

Adrien Grand commented on LUCENE-9628:
--------------------------------------

bq. In BooleanWeight#bulkScorer, we check if score mode is TOP_SCORES and if 
so, force non-bulk scoring. Should we expand this to include modes like 
TOP_DOCS?

I think so. DefaultBulkScorer seems to be the only bulk scorer which knows how 
to deal with {{LeafCollector#competitiveIterator}}, so we seem to be disabling 
the numeric sort optimization with boolean queries today? Let's switch to 
ScoreMode#isExhaustive? What do you think [~mayyas]?

bq. In ConstantScoreQuery, we create the delegate weight with a hardcoded 
COMPLETE_NO_SCORES. I'm not sure it actually causes problems, but it seems like 
this doesn't handle TOP_DOCS correctly.

I suspect that this could be a problem if the wrapped query uses the ScoreMode 
as an indication of whether it will need to handle 
{{LeafCollector#competitiveIterator}} or not, which seems to be something we'd 
like to do for boolean queries since BS1 (BooleanScorer) only really makes 
sense if we know we're going to collect all matches.

I think it'd be helpful if we improved ScoreMode javadocs to be more explicit 
regarding the expectations we have on scorers. TOP_SCORES mentions the 
relationship with {{Scorer#setMinCompetitiveScore}}, we should add something 
similar to TOP_DOCS and TOP_DOCS_WITH_SCORES regarding bulk scorers and 
{{LeafCollector#competitiveIterator}}?

> Make sure to account for ScoreMode.TOP_DOCS in queries
> ------------------------------------------------------
>
>                 Key: LUCENE-9628
>                 URL: https://issues.apache.org/jira/browse/LUCENE-9628
>             Project: Lucene - Core
>          Issue Type: Test
>          Components: core/search
>            Reporter: Julie Tibshirani
>            Priority: Minor
>
> I noticed a few places where we are directly check the {{ScoreMode}} type 
> that should perhaps be generalized. These could affect whether numeric sort 
> optimization is applied:
>  * In {{BooleanWeight#bulkScorer}}, we check if score mode is {{TOP_SCORES}} 
> and if so, force non-bulk scoring. Should we expand this to include modes 
> like {{TOP_DOCS}}?
>  * In {{ConstantScoreQuery}}, we create the delegate weight with a hardcoded 
> {{COMPLETE_NO_SCORES}}. I'm not sure it actually causes problems, but it 
> seems like this doesn't handle {{TOP_DOCS}} correctly.
> Apologies this issue isn’t more precise – I am not up-to-speed on the numeric 
> sort optimization but wanted to raise these in case they’re helpful.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to