[ 
https://issues.apache.org/jira/browse/LUCENE-5021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13668230#comment-13668230
 ] 

Michael McCandless commented on LUCENE-5021:
--------------------------------------------

In general you're not allowed to call nextDoc after it has returned 
NO_MORE_DOCS: the results are undefined.
                
> NextDoc safety for 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]

Reply via email to