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);
                }
            }