lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael McCandless (JIRA)" <>
Subject [jira] Commented: (LUCENE-1614) Add next() and skipTo() variants to DocIdSetIterator that return the current doc, instead of boolean
Date Thu, 21 May 2009 09:54:45 GMT


Michael McCandless commented on LUCENE-1614:

bq. OpenBitSetIterator already has a nextDoc() method which returns -1 when exhausted. 

Hmm -- maybe we need to choose a different name than nextDoc()?  Or... we make a new class
(DISI2 or something) so we can strongly differentiate old from new semantics?

bq. I tend to say MAX_VAL should not be a valid value

Right, we are saying (have already said, elsewhere in Lucene's core code) that MAX_VAL is
not a valid docID.

bq. MAX_VAL is considered a valid value for SortedVIntList (TestSortedVIntList.test03() validates
that). So if we use it as sentinel, we declare that MAX_VAL is invalid for SortedVIntList.
Not sure if we can do that.

I think we should remove that test, and decide MAX_VAL is not valid value in the list, because
SortedVIntList is a DocIdSet.

bq. BTW, besides the convenience, why should SortedVIntList expose a DocIdSetIterator? 

I don't follow -- SortedVIntList subclasses DocIdSet, which necessarily provides DISI iterator()
method.  Why is this not a "true DISI"?

> Add next() and skipTo() variants to DocIdSetIterator that return the current doc, instead
of boolean
> ----------------------------------------------------------------------------------------------------
>                 Key: LUCENE-1614
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Search
>            Reporter: Shai Erera
>             Fix For: 2.9
>         Attachments: LUCENE-1614.patch
> See
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:
For additional commands, e-mail:

View raw message