public override FieldsConsumer FieldsConsumer(SegmentWriteState state) { PostingsWriterBase docs = new Lucene41PostingsWriter(state); // TODO: should we make the terms index more easily // pluggable? Ie so that this codec would record which // index impl was used, and switch on loading? // Or... you must make a new Codec for this? TermsIndexWriterBase indexWriter; bool success = false; try { indexWriter = new FixedGapTermsIndexWriter(state); success = true; } finally { if (!success) { docs.Dispose(); } } success = false; try { // Must use BlockTermsWriter (not BlockTree) because // BlockTree doens't support ords (yet)... FieldsConsumer ret = new BlockTermsWriter(indexWriter, state, docs); success = true; return ret; } finally { if (!success) { try { docs.Dispose(); } finally { indexWriter.Dispose(); } } } }
public TermsWriter( TermsIndexWriterBase.FieldWriter fieldIndexWriter, FieldInfo fieldInfo, PostingsWriterBase postingsWriter, BlockTermsWriter btw) { _fieldInfo = fieldInfo; _fieldIndexWriter = fieldIndexWriter; _btw = btw; _pendingTerms = new TermEntry[32]; for (int i = 0; i < _pendingTerms.Length; i++) { _pendingTerms[i] = new TermEntry(); } _termsStartPointer = _btw._output.FilePointer; _postingsWriter = postingsWriter; _longsSize = postingsWriter.SetField(fieldInfo); }
internal TermsWriter( BlockTermsWriter outerInstance, TermsIndexWriterBase.FieldWriter fieldIndexWriter, FieldInfo fieldInfo, PostingsWriterBase postingsWriter) { this.outerInstance = outerInstance; this.fieldInfo = fieldInfo; this.fieldIndexWriter = fieldIndexWriter; pendingTerms = new TermEntry[32]; for (int i = 0; i < pendingTerms.Length; i++) { pendingTerms[i] = new TermEntry(); } termsStartPointer = outerInstance.m_output.Position; // LUCENENET specific: Renamed from getFilePointer() to match FileStream this.postingsWriter = postingsWriter; this.longsSize = postingsWriter.SetField(fieldInfo); }
internal TermsWriter( BlockTermsWriter outerInstance, TermsIndexWriterBase.FieldWriter fieldIndexWriter, FieldInfo fieldInfo, PostingsWriterBase postingsWriter) { this.outerInstance = outerInstance; this.fieldInfo = fieldInfo; this.fieldIndexWriter = fieldIndexWriter; pendingTerms = new TermEntry[32]; for (int i = 0; i < pendingTerms.Length; i++) { pendingTerms[i] = new TermEntry(); } termsStartPointer = outerInstance.m_output.GetFilePointer(); this.postingsWriter = postingsWriter; this.longsSize = postingsWriter.SetField(fieldInfo); }
public override FieldsConsumer FieldsConsumer(SegmentWriteState state) { PostingsWriterBase postingsWriter = new SepPostingsWriter(state, new MockIntFactory(baseBlockSize)); bool success = false; TermsIndexWriterBase indexWriter; try { indexWriter = new FixedGapTermsIndexWriter(state); success = true; } finally { if (!success) { postingsWriter.Dispose(); } } success = false; try { FieldsConsumer ret = new BlockTermsWriter(indexWriter, state, postingsWriter); success = true; return ret; } finally { if (!success) { try { postingsWriter.Dispose(); } finally { indexWriter.Dispose(); } } } }
public TermsWriter( TermsIndexWriterBase.FieldWriter fieldIndexWriter, FieldInfo fieldInfo, PostingsWriterBase postingsWriter, BlockTermsWriter btw) { _fieldInfo = fieldInfo; _fieldIndexWriter = fieldIndexWriter; _btw = btw; _pendingTerms = new TermEntry[32]; for (int i = 0; i < _pendingTerms.Length; i++) { _pendingTerms[i] = new TermEntry(); } _termsStartPointer = _btw._output.FilePointer; _postingsWriter = postingsWriter; _longsSize = postingsWriter.SetField(fieldInfo); }