public override void SeekExact(long targetOrd)
{
int delta = (int)(targetOrd - OuterInstance.OrdBase - Ord_Renamed);
//System.out.println(" seek(ord) targetOrd=" + targetOrd + " delta=" + delta + " ord=" + ord + " ii=" + indexInterval);
if (delta < 0 || delta > OuterInstance.IndexInterval)
{
int idx = (int)((long)((ulong)targetOrd >> OuterInstance.IndexIntervalBits));
BytesRef @base = OuterInstance.IndexedTermsArray[idx];
//System.out.println(" do seek term=" + base.utf8ToString());
Ord_Renamed = idx << OuterInstance.IndexIntervalBits;
delta = (int)(targetOrd - Ord_Renamed);
TermsEnum.SeekStatus seekStatus = TermsEnum.SeekCeil(@base);
Debug.Assert(seekStatus == TermsEnum.SeekStatus.FOUND);
}
else
{
//System.out.println("seek w/in block");
}
while (--delta >= 0)
{
BytesRef br = TermsEnum.Next();
if (br == null)
{
Debug.Assert(false);
return;
}
Ord_Renamed++;
}
SetTerm();
Debug.Assert(Term_Renamed != null);
}