[ https://issues.apache.org/jira/browse/LUCENE-1614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12715405#action_12715405 ]
Uwe Schindler commented on LUCENE-1614: --------------------------------------- bq. Uwe, regarding the -1 in DISI - -1 is a valid value for docID() in case nextDoc/advance were not called yet. That's why you see it in the javadocs. I did however fix advance's sample code in the javadocs to return NO_MORE_DOCS instead of -1. If that's what you meant, then thanks for spotting that. I meant the sample code that explains how it is internally implemented for backwards compatibility (if not overwritten). So you fixed the right one, I think. There is one other thing with the deprecation: When we deprectated the Filters getBits() method we un-abstracted this method and added the new one with the note, that it will be made abstract and the old bits() removed. You kept the old methods skipTo() and next() abstract, but deprecated. One must now always implement next() and skipTo() but gets a deprecated warning because of that. So I would do it in the same way like bits() for filters. Un-abstract it and implement it with throwing an UnsupportedOperationException(). The new advance() and others are calling this method (as it is now). If somebody overwrites this abstract class, he can leave out the deprecated one, will get no warning. As the method is not called anymore by Lucene he will never see a UOE. In 3.0 it can easily removed without problems for any users. > Add next() and skipTo() variants to DocIdSetIterator that return the current > doc, instead of boolean > ---------------------------------------------------------------------------------------------------- > > Key: LUCENE-1614 > URL: https://issues.apache.org/jira/browse/LUCENE-1614 > Project: Lucene - Java > Issue Type: Improvement > Components: Search > Reporter: Shai Erera > Fix For: 2.9 > > Attachments: LUCENE-1614.patch, LUCENE-1614.patch, LUCENE-1614.patch, > LUCENE-1614.patch, LUCENE-1614.patch, LUCENE-1614.patch, LUCENE-1614.patch, > LUCENE-1614.patch, LUCENE-1614.patch, LUCENE-1614.patch, LUCENE-1614.patch, > LUCENE-1614.patch > > > See > http://www.nabble.com/Another-possible-optimization---now-in-DocIdSetIterator-p23223319.html > for the full discussion. The basic idea is to add variants to those two > methods that return the current doc they are at, to save successive calls to > doc(). If there are no more docs, return -1. A summary of what was discussed > so far: > # Deprecate those two methods. > # Add nextDoc() and skipToDoc(int) that return doc, with default impl in DISI > (calls next() and skipTo() respectively, and will be changed to abstract in > 3.0). > #* I actually would like to propose an alternative to the names: advance() > and advance(int) - the first advances by one, the second advances to target. > # Wherever these are used, do something like '(doc = advance()) >= 0' instead > of comparing to -1 for improved performance. > I will post a patch shortly -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org