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; }
8081828384858687888990
i=0; votes=0; //could be smarted but would make the code even more complex for a minor optimization out of cycle. // enter main loop: while ( true ) { final DocIdSetIterator iterator = iterators[i]; final boolean validPosition = iterator.skipTo( targetPosition ); if ( ! validPosition ) return result; //exit condition final int position = iterator.doc(); if ( position == targetPosition ) { if ( ++votes == iteratorSize ) {
7374757677787980818283
public void testIteratorMatchesTestArray() throws IOException { DocIdSet docIdSet0_9 = arrayToDocIdSet(testDataFrom0to9); DocIdSetIterator docIdSetIterator = docIdSet0_9.iterator(); assertTrue( docIdSetIterator.next() ); assertEquals( 0, docIdSetIterator.doc() ); assertTrue( docIdSetIterator.skipTo(9) ); assertFalse( docIdSetIterator.skipTo(10) ); } public void testAndDocIdSets() { List<DocIdSet> filters = new ArrayList<DocIdSet>( 2 );
7475767778798081828384
DocIdSet docIdSet0_9 = arrayToDocIdSet(testDataFrom0to9); DocIdSetIterator docIdSetIterator = docIdSet0_9.iterator(); assertTrue( docIdSetIterator.next() ); assertEquals( 0, docIdSetIterator.doc() ); assertTrue( docIdSetIterator.skipTo(9) ); assertFalse( docIdSetIterator.skipTo(10) ); } public void testAndDocIdSets() { List<DocIdSet> filters = new ArrayList<DocIdSet>( 2 ); filters.add( arrayToDocIdSet( testDataFrom0to9 ) );
8182838485868788899091
103104105106107108109110111112113