Returns true iff there is such an entry.
Behaves as if written:
boolean skipTo(int target) { do { if (!next()) return false; } while (target > doc()); return true; }
306307308309310311312313314315316
// filter out documents that do not match the name test if (nameTest != null) { TermDocs tDocs = reader.termDocs(new Term(FieldNames.LABEL, nameTest)); try { for (int i = hits.nextSetBit(0); i >= 0; i = hits.nextSetBit(i + 1)) { if (!tDocs.skipTo(i)) { hits.clear(i); } } } finally { tDocs.close();
127128129130131132133134135136137
return new DocIdSetIterator(){ private int _doc = -1; @Override public int advance(int target) throws IOException { if (td.skipTo(target)){ _doc = td.doc(); } else{ td.close(); _doc= DocIdSetIterator.NO_MORE_DOCS;
351352353354355356357358359360361
TermDocs tDocs = reader.termDocs(new Term(FieldNames.LABEL, nameTest)); try { for (int i = hits.nextSetBit(0); i >= 0; i = hits.nextSetBit(i + 1)) { if (!tDocs.skipTo(i)) { hits.clear(i); } } }
// filter out documents that do not match the name test if (nameTest != null) { TermDocs tDocs = reader.termDocs(new Term(FieldNames.LABEL, nameTest)); try { for (int i = hits.nextSetBit(0); i >= 0; i = hits.nextSetBit(i + 1)) { if (!tDocs.skipTo(i)) { // no more name tests, clear remaining hits.clear(i, hits.length()); } else { // assert doc >= i int doc = tDocs.doc();
125126127128129130131132133134135
119120121122123124125126127128129
TermDocs testTermDocs = testReader.termDocs(aprioriTermEnum.term()); assertEquals(aprioriTermDocs.next(), testTermDocs.next()); assertEquals(aprioriTermDocs.doc(), testTermDocs.doc()); assertEquals(aprioriTermDocs.skipTo(100), testTermDocs.skipTo(100)); assertEquals(aprioriTermDocs.doc(), testTermDocs.doc()); assertEquals(aprioriTermDocs.next(), testTermDocs.next()); assertEquals(aprioriTermDocs.doc(), testTermDocs.doc());
128129130131132133134135136137138
assertEquals(aprioriTermDocs.doc(), testTermDocs.doc()); assertEquals(aprioriTermDocs.next(), testTermDocs.next()); assertEquals(aprioriTermDocs.doc(), testTermDocs.doc()); assertEquals(aprioriTermDocs.skipTo(110), testTermDocs.skipTo(110)); assertEquals(aprioriTermDocs.doc(), testTermDocs.doc()); assertEquals(aprioriTermDocs.skipTo(10), testTermDocs.skipTo(10)); assertEquals(aprioriTermDocs.doc(), testTermDocs.doc());
131132133134135136137138139140141
assertEquals(aprioriTermDocs.doc(), testTermDocs.doc()); assertEquals(aprioriTermDocs.skipTo(110), testTermDocs.skipTo(110)); assertEquals(aprioriTermDocs.doc(), testTermDocs.doc()); assertEquals(aprioriTermDocs.skipTo(10), testTermDocs.skipTo(10)); assertEquals(aprioriTermDocs.doc(), testTermDocs.doc()); assertEquals(aprioriTermDocs.skipTo(210), testTermDocs.skipTo(210)); assertEquals(aprioriTermDocs.doc(), testTermDocs.doc());
134135136137138139140141142143144
assertEquals(aprioriTermDocs.doc(), testTermDocs.doc()); assertEquals(aprioriTermDocs.skipTo(10), testTermDocs.skipTo(10)); assertEquals(aprioriTermDocs.doc(), testTermDocs.doc()); assertEquals(aprioriTermDocs.skipTo(210), testTermDocs.skipTo(210)); assertEquals(aprioriTermDocs.doc(), testTermDocs.doc()); aprioriTermDocs.close(); aprioriReader.close();
309310311312313314315316317318319
TermDocs aprioriTermDocsSeeker = aprioriReader.termDocs(aprioriTermEnum.term()); TermDocs testTermDocsSeeker = testReader.termDocs(testTermEnum.term()); while (aprioriTermDocsSeeker.next()) { assertTrue(testTermDocsSeeker.skipTo(aprioriTermDocsSeeker.doc())); assertEquals(aprioriTermDocsSeeker.doc(), testTermDocsSeeker.doc()); } aprioriTermDocsSeeker.close(); testTermDocsSeeker.close();