lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LUCENE-1614) Add next() and skipTo() variants to DocIdSetIterator that return the current doc, instead of boolean
Date Tue, 02 Jun 2009 07:44:07 GMT

    [ 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-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message