[
https://issues.apache.org/jira/browse/LUCENE-5021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13668350#comment-13668350
]
Alexis Torres Paderewski commented on LUCENE-5021:
--------------------------------------------------
After checking lucene-core, it seems the only candidate for the ticket is the
DisjunctionSumScorer.
> NextDoc NPE safety when bulk collecting
> ---------------------------------------
>
> Key: LUCENE-5021
> URL: https://issues.apache.org/jira/browse/LUCENE-5021
> Project: Lucene - Core
> Issue Type: Improvement
> Components: core/index, core/other
> Affects Versions: 3.6.2
> Environment: Any with custom filters
> Reporter: Alexis Torres Paderewski
> Labels: NPE,, Null-Safety, Scorer
>
> Hello,
> I would like to apply ACL once as a PostFilter and I therefore need to bulk
> this call since round trips would severely decrease performances.
> I tried to just stack them on the DelegatingCollector using this collect :
> @Override
> public void collect(int doc) throws IOException {
> while ((doc = scorer.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
> docs.put(getDocumentId(doc), doc);
> }
> batchCollect();
> }
> Depending on the Scorer it may or it may not work. Indeed when the Scorer is
> "Safe" that is when it handles
> the case in which the scorer is exhausted and is called once again after
> exhaustion.
> This is the case of the (e.g. DisjunctionMaxScorer, ConstantScorer):
> if (numScorers == 0) return doc = NO_MORE_DOCS;
> On the other hand, when using the DisjunctionSumScorer, it either asserts on
> "NO_MORE_DOCS", or it throws a NPE.
> Shouldn't we copy the DisjunctionMaxScorer mechanism to protect nextDoc of an
> exausted iterator using either current doc or checking numbers of subScorers ?
--
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: [email protected]
For additional commands, e-mail: [email protected]