public override int Advance(int target) { if (cursor >= array.Length || array.Length == -1) { return(DocIdSetIterator.NO_MORE_DOCS); } if (target <= doc) { target = doc + 1; } int index = IntArray.BinarySearch(array, cursor, array.Length, target); if (index > 0) { cursor = index; doc = array[cursor]; return(doc); } else { cursor = -(index + 1); if (cursor > array.Length) { doc = DocIdSetIterator.NO_MORE_DOCS; } else { doc = array[cursor]; } return(doc); } }