[ https://issues.apache.org/jira/browse/LUCENE-4903?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13626628#comment-13626628 ]
Robert Muir commented on LUCENE-4903: ------------------------------------- {quote} The problem is that scorers are hard to track: scoring usually happens by calling Scorer.score(Collector), which itself calls Collector.setScorer(Scorer). Since the asserting scorer delegates to the wrapped one, the asserting scorer gets lost, this is why Collector.setScorer tries to get it back by using a weak hash map. I'm not totally happy with it either and would really like to make Scorer.score(Collector) use methods from the asserting scorer directly. We can't rely on Scorer.score(Collector)'s default implementation since it relies on Scorer.nextDoc and some scorers such as BooleanScorer don't implement this method. {quote} Could we alternatively use VirtualMethod to detect if score(Collector)/score(Collector,int,int) are overridden in the underlying scorer? If they aren't, then its safe for AssertingScorer to use its own implementation (possibly with more checks). > Add AssertingScorer > ------------------- > > Key: LUCENE-4903 > URL: https://issues.apache.org/jira/browse/LUCENE-4903 > Project: Lucene - Core > Issue Type: Improvement > Reporter: Adrien Grand > Assignee: Adrien Grand > Priority: Minor > Attachments: LUCENE-4903.patch > > > I think we would benefit from having an AssertingScorer that would assert > that scorers are advanced correctly, return valid scores (eg. not NaN), ... -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org