[ https://issues.apache.org/jira/browse/LUCENE-1583?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mark Miller reassigned LUCENE-1583: ----------------------------------- Assignee: Mark Miller I guess I'll do this one. You out there reading Paul Elschot? This look right to you? Any issues it might cause? Else I guess I'll have to put on my thinking cap and figure it myself. > SpanOrQuery skipTo() doesn't always move forwards > ------------------------------------------------- > > Key: LUCENE-1583 > URL: https://issues.apache.org/jira/browse/LUCENE-1583 > Project: Lucene - Java > Issue Type: Bug > Components: Search > Affects Versions: 1.9, 2.0.0, 2.1, 2.2, 2.3, 2.3.1, 2.3.2, 2.4, 2.4.1 > Reporter: Moti Nisenson > Assignee: Mark Miller > Priority: Minor > Fix For: 2.9 > > Attachments: LUCENE-1583.patch > > > In SpanOrQuery the skipTo() method is improperly implemented if the target > doc is less than or equal to the current doc, since skipTo() may not be > called for any of the clauses' spans: > public boolean skipTo(int target) throws IOException { > if (queue == null) { > return initSpanQueue(target); > } > while (queue.size() != 0 && top().doc() < target) { > if (top().skipTo(target)) { > queue.adjustTop(); > } else { > queue.pop(); > } > } > > return queue.size() != 0; > } > This violates the correct behavior (as described in the Spans interface > documentation), that skipTo() should always move forwards, in other words the > correct implementation would be: > public boolean skipTo(int target) throws IOException { > if (queue == null) { > return initSpanQueue(target); > } > boolean skipCalled = false; > while (queue.size() != 0 && top().doc() < target) { > if (top().skipTo(target)) { > queue.adjustTop(); > } else { > queue.pop(); > } > skipCalled = true; > } > > if (skipCalled) { > return queue.size() != 0; > } > return next(); > } -- 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