Thanks Alan,
I've opened an issue:
https://issues.apache.org/jira/browse/LUCENE-9618
And also a PR including a unit test to demonstrate the issue:
https://github.com/apache/lucene-solr/pull/2090
Seems we're not on the exact same point, originally I'm asking about
whether nextInterval() are supposed to be called after NO_MORE_DOCS is
returned. But we definitely should update doc/test for behavior after
NO_MORE_INTERVALS returned as well.

Patrick

Alan Woodward <[email protected]> 于2020年11月19日周四 上午1:36写道:

> Some of the minimum-interval algorithms will call nextInterval() or
> start() even after the interval has been exhausted, so we need to handle
> those situations properly.  Improved java doc would definitely be helpful
> though, and maybe we should update checkIntervals() in TestIntervals to
> test what happens when calling nextInterval() after it has returned
> NO_MORE_INTERVALS.  Do you want to open an issue?
>
> - Alan
>
> > On 19 Nov 2020, at 08:17, Haoyu Zhai <[email protected]> wrote:
> >
> > Hi,
> > I'm trying to play around with my own IntervalSource and found out that
> "nextInterval" method of IntervalIterator will be called sometimes even
> after "nextDoc"/"docID"/"advance" method returns NO_MORE_DOCS.
> > After I dug a bit more I found that FilteringIntervalIterator.reset is
> calling an inner iterator's "nextInterval" regardless of what the result of
> "nextDoc", and also most (if not all) existing IntervalIterator's
> implementation do considered the case where "nextInterval" is called after
> "nextDoc" returns NO_MORE_DOCS.
> > I'm a bit confused here since I thought in most places lucene assumes
> undefined behavior after NO_MORE_DOCS are returned for those method should
> be called only after "advance", but for "nextInterval" seems its not the
> case. Should we change the current behavior of "nextInterval"
> implementations or add some caution comment to javadoc?
> >
> > Thanks
> > Patrick Zhai
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to