@Override public int advance(int target) throws IOException { DisiWrapper<Iter> top = subIterators.top(); do { top.doc = top.approximation.advance(target); top = subIterators.updateTop(); } while (top.doc < target); return top.doc; }
@Override public int nextDoc() throws IOException { DisiWrapper<Iter> top = subIterators.top(); final int doc = top.doc; do { top.doc = top.approximation.nextDoc(); top = subIterators.updateTop(); } while (top.doc == doc); return top.doc; }