Description
This is because, when scores are requested, we use MultiCollector, and it will end up using a scorer that explicitly skips delegating calls to set the minimum competitive score:
@Override public void setScorer(Scorable scorer) throws IOException { if (cacheScores) { scorer = new ScoreCachingWrappingScorer(scorer); } scorer = new FilterScorable(scorer) { @Override public void setMinCompetitiveScore(float minScore) throws IOException { // Ignore calls to setMinCompetitiveScore so that if we wrap two // collectors and one of them wants to skip low-scoring hits, then // the other collector still sees all hits. We could try to reconcile // min scores and take the maximum min score across collectors, but // this is very unlikely to be helpful in practice. } }; for (int i = 0; i < numCollectors; ++i) { final LeafCollector c = collectors[i]; c.setScorer(scorer); } }
Attachments
Issue Links
- is related to
-
SOLR-13289 Support for BlockMax WAND
- Closed
-
LUCENE-9402 Let MultiCollector Scorer handle minCompetitiveScore calls
- Closed
- links to