public override FieldWriter AddField(FieldInfo field, long termsFilePointer) { _policy.NewField(field); var writer = new FstFieldWriter(field, termsFilePointer, this); _fields.Add(writer); return(writer); }
public override void Dispose() { if (Output == null) { return; } try { long dirStart = Output.FilePointer; int fieldCount = _fields.Count; int nonNullFieldCount = 0; for (int i = 0; i < fieldCount; i++) { FstFieldWriter field = _fields[i]; if (field.Fst != null) { nonNullFieldCount++; } } Output.WriteVInt(nonNullFieldCount); for (int i = 0; i < fieldCount; i++) { FstFieldWriter field = _fields[i]; if (field.Fst != null) { Output.WriteVInt(field.FieldInfo.Number); Output.WriteVLong(field.IndexStart); } } WriteTrailer(dirStart); CodecUtil.WriteFooter(Output); } finally { Output.Dispose(); Output = null; } }
public override FieldWriter AddField(FieldInfo field, long termsFilePointer) { _policy.NewField(field); var writer = new FstFieldWriter(field, termsFilePointer, this); _fields.Add(writer); return writer; }