protected internal virtual System.IComparable[] FillCache(IndexReader reader, TermEnum enumerator, System.String fieldname)
{
System.String field = String.Intern(fieldname);
System.IComparable[] retArray = new System.IComparable[reader.MaxDoc()];
if (retArray.Length > 0)
{
TermDocs termDocs = reader.TermDocs();
try
{
if (enumerator.Term() == null)
{
throw new System.SystemException("no terms in Field " + field);
}
do
{
Term term = enumerator.Term();
if ((System.Object) term.Field() != (System.Object) field)
break;
System.IComparable termval = GetComparable(term.Text());
termDocs.Seek(enumerator);
while (termDocs.Next())
{
retArray[termDocs.Doc()] = termval;
}
}
while (enumerator.Next());
}
finally
{
termDocs.Close();
}
}
return retArray;
}