public override void Abort() { HasVectors = false; if (Writer != null) { Writer.Abort(); Writer = null; } LastDocID = 0; Reset(); }
private void InitTermVectorsWriter() { if (Writer == null) { IOContext context = new IOContext(new FlushInfo(DocWriter.NumDocsInRAM, DocWriter.BytesUsed())); Writer = DocWriter.Codec.TermVectorsFormat().VectorsWriter(DocWriter.Directory, DocWriter.SegmentInfo, context); LastDocID = 0; } }
public override void Flush(IDictionary<string, TermsHashConsumerPerField> fieldsToFlush, SegmentWriteState state) { if (Writer != null) { int numDocs = state.SegmentInfo.DocCount; Debug.Assert(numDocs > 0); // At least one doc in this run had term vectors enabled try { Fill(numDocs); Debug.Assert(state.SegmentInfo != null); Writer.Finish(state.FieldInfos, numDocs); } finally { IOUtils.Close(Writer); Writer = null; LastDocID = 0; HasVectors = false; } } foreach (TermsHashConsumerPerField field in fieldsToFlush.Values) { TermVectorsConsumerPerField perField = (TermVectorsConsumerPerField)field; perField.TermsHashPerField.Reset(); perField.ShrinkHash(); } }