private static AbstractField CreateField(IndexFieldInfo fieldInfo)
{
NumericField nf;
switch (fieldInfo.Type)
{
case FieldInfoType.StringField:
return new Field(fieldInfo.Name, fieldInfo.Value, fieldInfo.Store, fieldInfo.Index, fieldInfo.TermVector);
case FieldInfoType.IntField:
nf = new NumericField(fieldInfo.Name, fieldInfo.Store, fieldInfo.Index != Field.Index.NO);
nf.SetIntValue(Int32.Parse(fieldInfo.Value, CultureInfo.InvariantCulture));
return nf;
case FieldInfoType.LongField:
nf = new NumericField(fieldInfo.Name, 8, fieldInfo.Store, fieldInfo.Index != Field.Index.NO);
nf.SetLongValue(Int64.Parse(fieldInfo.Value, CultureInfo.InvariantCulture));
return nf;
case FieldInfoType.SingleField:
nf = new NumericField(fieldInfo.Name, fieldInfo.Store, fieldInfo.Index != Field.Index.NO);
nf.SetFloatValue(Single.Parse(fieldInfo.Value, CultureInfo.InvariantCulture));
return nf;
case FieldInfoType.DoubleField:
nf = new NumericField(fieldInfo.Name, 8, fieldInfo.Store, fieldInfo.Index != Field.Index.NO);
nf.SetDoubleValue(Double.Parse(fieldInfo.Value, CultureInfo.InvariantCulture));
return nf;
default:
throw new NotImplementedException("IndexFieldInfo." + fieldInfo.Type);
}
}