[
https://issues.apache.org/jira/browse/LUCENE-6228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16255460#comment-16255460
]
Alan Woodward commented on LUCENE-6228:
---------------------------------------
The issue with getChildren() is that you can't access it if a BulkScorer is
being used - it's a separate problem to this issue, which is preventing people
calling iterator() from a Collector. Or rather, it's the same sort of problem,
in that we should prevent people from calling getChildren() from a Collector,
because they might be holding a FakeScorer which can't support it.
> 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: [email protected]
For additional commands, e-mail: [email protected]