Most 4.0 PostingsReaders don't obey DISI contract
-------------------------------------------------
Key: LUCENE-3580
URL: https://issues.apache.org/jira/browse/LUCENE-3580
Project: Lucene - Java
Issue Type: Bug
Affects Versions: 4.0
Reporter: Robert Muir
While trying to do some refactoring, I noticed funky things going on with some
codecs.
One problem is that DocIdSetIterator says the following:
{noformat}
Returns the following:
* <ul>
* <li>-1 or {@link #NO_MORE_DOCS} if {@link #nextDoc()} or
* {@link #advance(int)} were not called yet.
{noformat}
But most 4.0 Docs/DocsAndPositionsEnums don't actually do this (e.g. return 0).
instead we
are relying on Scorers to 'cover' for them, which is inconsistent. Some scorers
actually rely
upon this behavior, for example look at ReqExclScorer.toNonExcluded(), it calls
docId() on the
excluded part before it calls nextDoc()
So we need to either fix these enums, change these enums to not extend
DocIdSetIterator (and redefine
what the actual contract should be for these enums), change DocIdSetIterator,
or something else.
Fixing the enums to return -1 here when they are uninitialized kinda sucks for
the ones summing up
document deltas...
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
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]