[ https://issues.apache.org/jira/browse/LUCENE-6228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16259721#comment-16259721 ]
Alan Woodward commented on LUCENE-6228: --------------------------------------- bq. Can we access the Query from this new interface? Not without casting back to Scorer. But this should let us clean up the hack that lets Scorers take null for their Weights, by making the various FakeScorer implementations extend Scorable instead. That way, if you want to get the parent Query, you check to see if the Scorable is a Scorer instance, and if so, cast and call getWeight().getQuery(). Right now you can get NPE if you've been passed a bulk scorer. > Do not expose full-fledged scorers in LeafCollector.setScorer > ------------------------------------------------------------- > > Key: LUCENE-6228 > URL: https://issues.apache.org/jira/browse/LUCENE-6228 > Project: Lucene - Core > Issue Type: Improvement > Reporter: Adrien Grand > Assignee: Adrien Grand > Fix For: 5.2, 6.0 > > Attachments: LUCENE-6228.patch, LUCENE-6228.patch, LUCENE-6228.patch, > LUCENE-6228.patch > > > Currently LeafCollector.setScorer takes a Scorer, which I don't like because > several methods should never be called in the context of a Collector (like > nextDoc or advance). > I think it's even more trappy for methods that might seem to work in some > particular cases but will not work in the general case, like getChildren > which will not work if you have a specialized BulkScorer or iterating over > positions which will not work if you are in a MultiCollector and another leaf > collector consumes positions too. > So I think we should restrict what can be seen from a collector to avoid such > traps. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org