You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2020/06/22 23:52:00 UTC
[jira] [Commented] (SOLR-14554) BMW algorithm isn't used when
scores are requested
[ https://issues.apache.org/jira/browse/SOLR-14554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17142488#comment-17142488 ]
ASF subversion and git services commented on SOLR-14554:
--------------------------------------------------------
Commit a1be1de67e641229236dfd4648a71030b8a86fc7 in lucene-solr's branch refs/heads/master from Tomas Eduardo Fernandez Lobbe
[ https://gitbox.apache.org/repos/asf?p=lucene-solr.git;h=a1be1de ]
SOLR-14554: Let Solr use WAND algorithm when scores are requested (#1566)
Make MaxScoreCollector set minCompetitiveScore
> BMW algorithm isn't used when scores are requested
> --------------------------------------------------
>
> Key: SOLR-14554
> URL: https://issues.apache.org/jira/browse/SOLR-14554
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Affects Versions: master (9.0), 8.6
> Reporter: Tomas Eduardo Fernandez Lobbe
> Assignee: Tomas Eduardo Fernandez Lobbe
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> 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:
> {code:java}
> @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);
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org