internal Lucene40DocValuesReader(SegmentReadState state, string filename, string legacyKey) { this.State = state; this.LegacyKey = legacyKey; this.Dir = new CompoundFileDirectory(state.Directory, filename, state.Context, false); RamBytesUsed_Renamed = new AtomicLong(RamUsageEstimator.ShallowSizeOf(this.GetType())); }
public override FieldsProducer FieldsProducer(SegmentReadState state) { using (var postings = new Lucene40PostingsReader(state.Directory, state.FieldInfos, state.SegmentInfo, state.Context, state.SegmentSuffix)) { var ret = new AppendingTermsReader( state.Directory, state.FieldInfos, state.SegmentInfo, postings, state.Context, state.SegmentSuffix, state.TermsIndexDivisor); return ret; } }
public override FieldsProducer FieldsProducer(SegmentReadState state) { var postings = ForName("Lucene41").FieldsProducer(state); if (state.Context.Context != IOContext.UsageContext.MERGE) { FieldsProducer loadedPostings; try { postings.CheckIntegrity(); loadedPostings = new DirectFields(state, postings, _minSkipCount, _lowFreqCutoff); } finally { postings.Dispose(); } return loadedPostings; } else { // Don't load postings for merge: return postings; } }
// LUCENENET NOTE: Changed from public to internal because the class had to be made public, but is not for public use. internal SimpleTextDocValuesReader(SegmentReadState state, string ext) { data = state.Directory.OpenInput( IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, ext), state.Context); maxDoc = state.SegmentInfo.DocCount; while (true) { ReadLine(); if (scratch.Equals(SimpleTextDocValuesWriter.END)) { break; } // LUCENENET specific - use wrapper BytesRefFormatter struct to defer building the string unless string.Format() is called if (Debugging.AssertsEnabled) { Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.FIELD), "{0}", new BytesRefFormatter(scratch, BytesRefFormat.UTF8)); } var fieldName = StripPrefix(SimpleTextDocValuesWriter.FIELD); var field = new OneField(); fields[fieldName] = field; ReadLine(); // LUCENENET specific - use wrapper BytesRefFormatter struct to defer building the string unless string.Format() is called if (Debugging.AssertsEnabled) { Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.TYPE), "{0}", new BytesRefFormatter(scratch, BytesRefFormat.UTF8)); } var dvType = (DocValuesType)Enum.Parse(typeof(DocValuesType), StripPrefix(SimpleTextDocValuesWriter.TYPE)); // if (Debugging.AssertsEnabled) Debugging.Assert(dvType != null); // LUCENENET: Not possible for an enum to be null in .NET if (dvType == DocValuesType.NUMERIC) { ReadLine(); // LUCENENET specific - use wrapper BytesRefFormatter struct to defer building the string unless string.Format() is called if (Debugging.AssertsEnabled) { Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.MINVALUE), "got {0} field={1} ext={2}", new BytesRefFormatter(scratch, BytesRefFormat.UTF8), fieldName, ext); } field.MinValue = Convert.ToInt64(StripPrefix(SimpleTextDocValuesWriter.MINVALUE), CultureInfo.InvariantCulture); ReadLine(); if (Debugging.AssertsEnabled) { Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN)); } field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN); field.DataStartFilePointer = data.GetFilePointer(); data.Seek(data.GetFilePointer() + (1 + field.Pattern.Length + 2) * maxDoc); } else if (dvType == DocValuesType.BINARY) { ReadLine(); if (Debugging.AssertsEnabled) { Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.MAXLENGTH)); } field.MaxLength = Convert.ToInt32(StripPrefix(SimpleTextDocValuesWriter.MAXLENGTH), CultureInfo.InvariantCulture); ReadLine(); if (Debugging.AssertsEnabled) { Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN)); } field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN); field.DataStartFilePointer = data.GetFilePointer(); data.Seek(data.GetFilePointer() + (9 + field.Pattern.Length + field.MaxLength + 2) * maxDoc); } else if (dvType == DocValuesType.SORTED || dvType == DocValuesType.SORTED_SET) { ReadLine(); if (Debugging.AssertsEnabled) { Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.NUMVALUES)); } field.NumValues = Convert.ToInt64(StripPrefix(SimpleTextDocValuesWriter.NUMVALUES), CultureInfo.InvariantCulture); ReadLine(); if (Debugging.AssertsEnabled) { Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.MAXLENGTH)); } field.MaxLength = Convert.ToInt32(StripPrefix(SimpleTextDocValuesWriter.MAXLENGTH), CultureInfo.InvariantCulture); ReadLine(); if (Debugging.AssertsEnabled) { Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN)); } field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN); ReadLine(); if (Debugging.AssertsEnabled) { Debugging.Assert(StartsWith(SimpleTextDocValuesWriter.ORDPATTERN)); } field.OrdPattern = StripPrefix(SimpleTextDocValuesWriter.ORDPATTERN); field.DataStartFilePointer = data.GetFilePointer(); data.Seek(data.GetFilePointer() + (9 + field.Pattern.Length + field.MaxLength) * field.NumValues + (1 + field.OrdPattern.Length) * maxDoc); } else { throw new ArgumentOutOfRangeException(); } } // We should only be called from above if at least one // field has DVs: if (Debugging.AssertsEnabled) { Debugging.Assert(fields.Count > 0); } }
public override FieldsProducer FieldsProducer(SegmentReadState state) { return(new BloomFilteredFieldsProducer(this, state)); }
public DiskDocValuesProducer(SegmentReadState state, String dataCodec, String dataExtension, String metaCodec, String metaExtension) : base(state, dataCodec, dataExtension, metaCodec, metaExtension) { }
public override sealed DocValuesProducer FieldsProducer(SegmentReadState state) { return new FieldsReader(this, state); }
public override DocValuesProducer FieldsProducer(SegmentReadState state) { return(new DiskDocValuesProducer(state, DATA_CODEC, DATA_EXTENSION, META_CODEC, META_EXTENSION)); }
public PulsingPostingsReader(SegmentReadState state, PostingsReaderBase wrappedPostingsReader) { _wrappedPostingsReader = wrappedPostingsReader; _segmentState = state; }
public override FieldsProducer FieldsProducer(SegmentReadState state) { return new Lucene3xFields(state.Directory, state.FieldInfos, state.SegmentInfo, state.Context, state.TermsIndexDivisor); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: public SimpleTextDocValuesReader(index.SegmentReadState state, String ext) throws java.io.IOException public SimpleTextDocValuesReader(SegmentReadState state, string ext) { // System.out.println("dir=" + state.directory + " seg=" + state.segmentInfo.name + " file=" + IndexFileNames.segmentFileName(state.segmentInfo.name, state.segmentSuffix, ext)); data = state.directory.openInput(IndexFileNames.segmentFileName(state.segmentInfo.name, state.segmentSuffix, ext), state.context); maxDoc = state.segmentInfo.DocCount; while (true) { readLine(); //System.out.println("READ field=" + scratch.utf8ToString()); if (scratch.Equals(END)) { break; } Debug.Assert(startsWith(FIELD), scratch.utf8ToString()); string fieldName = stripPrefix(FIELD); //System.out.println(" field=" + fieldName); OneField field = new OneField(); fields[fieldName] = field; readLine(); Debug.Assert(startsWith(TYPE), scratch.utf8ToString()); FieldInfo.DocValuesType dvType = FieldInfo.DocValuesType.valueOf(stripPrefix(TYPE)); Debug.Assert(dvType != null); if (dvType == FieldInfo.DocValuesType.NUMERIC) { readLine(); Debug.Assert(startsWith(MINVALUE), "got " + scratch.utf8ToString() + " field=" + fieldName + " ext=" + ext); field.minValue = Convert.ToInt64(stripPrefix(MINVALUE)); readLine(); Debug.Assert(startsWith(PATTERN)); field.pattern = stripPrefix(PATTERN); field.dataStartFilePointer = data.FilePointer; data.seek(data.FilePointer + (1 + field.pattern.Length + 2) * maxDoc); } else if (dvType == FieldInfo.DocValuesType.BINARY) { readLine(); Debug.Assert(startsWith(MAXLENGTH)); field.maxLength = Convert.ToInt32(stripPrefix(MAXLENGTH)); readLine(); Debug.Assert(startsWith(PATTERN)); field.pattern = stripPrefix(PATTERN); field.dataStartFilePointer = data.FilePointer; data.seek(data.FilePointer + (9 + field.pattern.Length + field.maxLength + 2) * maxDoc); } else if (dvType == FieldInfo.DocValuesType.SORTED || dvType == FieldInfo.DocValuesType.SORTED_SET) { readLine(); Debug.Assert(startsWith(NUMVALUES)); field.numValues = Convert.ToInt64(stripPrefix(NUMVALUES)); readLine(); Debug.Assert(startsWith(MAXLENGTH)); field.maxLength = Convert.ToInt32(stripPrefix(MAXLENGTH)); readLine(); Debug.Assert(startsWith(PATTERN)); field.pattern = stripPrefix(PATTERN); readLine(); Debug.Assert(startsWith(ORDPATTERN)); field.ordPattern = stripPrefix(ORDPATTERN); field.dataStartFilePointer = data.FilePointer; data.seek(data.FilePointer + (9 + field.pattern.Length + field.maxLength) * field.numValues + (1 + field.ordPattern.Length) * maxDoc); } else { throw new AssertionError(); } } // We should only be called from above if at least one // field has DVs: Debug.Assert(fields.Count > 0); }
/// <summary> /// expert: instantiates a new reader </summary> protected internal Lucene45DocValuesProducer(SegmentReadState state, string dataCodec, string dataExtension, string metaCodec, string metaExtension) { string metaName = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, metaExtension); // read in the entries from the metadata file. ChecksumIndexInput @in = state.Directory.OpenChecksumInput(metaName, state.Context); this.MaxDoc = state.SegmentInfo.DocCount; bool success = false; try { Version = CodecUtil.CheckHeader(@in, metaCodec, Lucene45DocValuesFormat.VERSION_START, Lucene45DocValuesFormat.VERSION_CURRENT); Numerics = new Dictionary <int, NumericEntry>(); Ords = new Dictionary <int, NumericEntry>(); OrdIndexes = new Dictionary <int, NumericEntry>(); Binaries = new Dictionary <int, BinaryEntry>(); SortedSets = new Dictionary <int, SortedSetEntry>(); ReadFields(@in, state.FieldInfos); if (Version >= Lucene45DocValuesFormat.VERSION_CHECKSUM) { CodecUtil.CheckFooter(@in); } else { CodecUtil.CheckEOF(@in); } success = true; } finally { if (success) { IOUtils.Close(@in); } else { IOUtils.CloseWhileHandlingException(@in); } } success = false; try { string dataName = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, dataExtension); Data = state.Directory.OpenInput(dataName, state.Context); int version2 = CodecUtil.CheckHeader(Data, dataCodec, Lucene45DocValuesFormat.VERSION_START, Lucene45DocValuesFormat.VERSION_CURRENT); if (Version != version2) { throw new Exception("Format versions mismatch"); } success = true; } finally { if (!success) { IOUtils.CloseWhileHandlingException(this.Data); } } RamBytesUsed_Renamed = new AtomicLong(RamUsageEstimator.ShallowSizeOfInstance(this.GetType())); }
public override DocValuesProducer FieldsProducer(SegmentReadState state) { return null; // we have no docvalues, ever }
public override FieldsProducer FieldsProducer(SegmentReadState state) { string fileName = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, EXTENSION); ChecksumIndexInput @in = state.Directory.OpenChecksumInput(fileName, IOContext.READONCE); var fields = new SortedDictionary<string, TermsReader>(); try { CodecUtil.CheckHeader(@in, CODEC_NAME, VERSION_START, VERSION_CURRENT); while (true) { int termCount = @in.ReadVInt(); if (termCount == 0) { break; } TermsReader termsReader = new TermsReader(state.FieldInfos, @in, termCount); // System.out.println("load field=" + termsReader.field.name); fields.Add(termsReader.field.Name, termsReader); } CodecUtil.CheckFooter(@in); } finally { @in.Dispose(); } return new FieldsProducerAnonymousInnerClassHelper(this, fields); }
public DirectField(SegmentReadState state, string field, Terms termsIn, int minSkipCount, int lowFreqCutoff) { FieldInfo fieldInfo = state.FieldInfos.FieldInfo(field); sumTotalTermFreq = termsIn.SumTotalTermFreq; sumDocFreq = termsIn.SumDocFreq; docCount = termsIn.DocCount; int numTerms = (int) termsIn.Size(); if (numTerms == -1) { throw new System.ArgumentException("codec does not provide Terms.size()"); } terms = new TermAndSkip[numTerms]; termOffsets = new int[1 + numTerms]; byte[] termBytes = new byte[1024]; this.minSkipCount = minSkipCount; hasFreq = fieldInfo.FieldIndexOptions.Value.CompareTo(IndexOptions.DOCS_ONLY) > 0; hasPos = fieldInfo.FieldIndexOptions.Value.CompareTo(IndexOptions.DOCS_AND_FREQS) > 0; hasOffsets_Renamed = fieldInfo.FieldIndexOptions.Value.CompareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) > 0; hasPayloads_Renamed = fieldInfo.HasPayloads(); BytesRef term; DocsEnum docsEnum = null; DocsAndPositionsEnum docsAndPositionsEnum = null; TermsEnum termsEnum = termsIn.Iterator(null); int termOffset = 0; IntArrayWriter scratch = new IntArrayWriter(); // Used for payloads, if any: RAMOutputStream ros = new RAMOutputStream(); // if (DEBUG) { // System.out.println("\nLOAD terms seg=" + state.segmentInfo.name + " field=" + field + " hasOffsets=" + hasOffsets + " hasFreq=" + hasFreq + " hasPos=" + hasPos + " hasPayloads=" + hasPayloads); // } while ((term = termsEnum.Next()) != null) { int docFreq = termsEnum.DocFreq(); long totalTermFreq = termsEnum.TotalTermFreq(); // if (DEBUG) { // System.out.println(" term=" + term.utf8ToString()); // } termOffsets[count] = termOffset; if (termBytes.Length < (termOffset + term.Length)) { termBytes = ArrayUtil.Grow(termBytes, termOffset + term.Length); } Array.Copy(term.Bytes, term.Offset, termBytes, termOffset, term.Length); termOffset += term.Length; termOffsets[count + 1] = termOffset; if (hasPos) { docsAndPositionsEnum = termsEnum.DocsAndPositions(null, docsAndPositionsEnum); } else { docsEnum = termsEnum.Docs(null, docsEnum); } TermAndSkip ent; DocsEnum docsEnum2; docsEnum2 = hasPos ? docsAndPositionsEnum : docsEnum; int docID; if (docFreq <= lowFreqCutoff) { ros.Reset(); // Pack postings for low-freq terms into a single int[]: while ((docID = docsEnum2.NextDoc()) != DocsEnum.NO_MORE_DOCS) { scratch.Add(docID); if (hasFreq) { int freq = docsEnum2.Freq(); scratch.Add(freq); if (hasPos) { for (int pos = 0; pos < freq; pos++) { scratch.Add(docsAndPositionsEnum.NextPosition()); if (hasOffsets_Renamed) { scratch.Add(docsAndPositionsEnum.StartOffset()); scratch.Add(docsAndPositionsEnum.EndOffset()); } if (hasPayloads_Renamed) { BytesRef payload = docsAndPositionsEnum.Payload; if (payload != null) { scratch.Add(payload.Length); ros.WriteBytes(payload.Bytes, payload.Offset, payload.Length); } else { scratch.Add(0); } } } } } } byte[] payloads; if (hasPayloads_Renamed) { ros.Flush(); payloads = new byte[(int) ros.Length]; ros.WriteTo(payloads, 0); } else { payloads = null; } int[] postings = scratch.Get(); ent = new LowFreqTerm(postings, payloads, docFreq, (int) totalTermFreq); } else { var docs = new int[docFreq]; int[] freqs; int[][] positions; byte[][][] payloads; if (hasFreq) { freqs = new int[docFreq]; if (hasPos) { positions = new int[docFreq][]; if (hasPayloads_Renamed) { payloads = new byte[docFreq][][]; } else { payloads = null; } } else { positions = null; payloads = null; } } else { freqs = null; positions = null; payloads = null; } // Use separate int[] for the postings for high-freq // terms: int upto = 0; while ((docID = docsEnum2.NextDoc()) != DocsEnum.NO_MORE_DOCS) { docs[upto] = docID; if (hasFreq) { int freq = docsEnum2.Freq(); freqs[upto] = freq; if (hasPos) { int mult; if (hasOffsets_Renamed) { mult = 3; } else { mult = 1; } if (hasPayloads_Renamed) { payloads[upto] = new byte[freq][]; } positions[upto] = new int[mult*freq]; int posUpto = 0; for (int pos = 0; pos < freq; pos++) { positions[upto][posUpto] = docsAndPositionsEnum.NextPosition(); if (hasPayloads_Renamed) { BytesRef payload = docsAndPositionsEnum.Payload; if (payload != null) { var payloadBytes = new byte[payload.Length]; Array.Copy(payload.Bytes, payload.Offset, payloadBytes, 0, payload.Length); payloads[upto][pos] = payloadBytes; } } posUpto++; if (hasOffsets_Renamed) { positions[upto][posUpto++] = docsAndPositionsEnum.StartOffset(); positions[upto][posUpto++] = docsAndPositionsEnum.EndOffset(); } } } } upto++; } Debug.Assert(upto == docFreq); ent = new HighFreqTerm(docs, freqs, positions, payloads, totalTermFreq); } terms[count] = ent; SetSkips(count, termBytes); count++; } // End sentinel: termOffsets[count] = termOffset; FinishSkips(); //System.out.println(skipCount + " skips: " + field); this.termBytes = new byte[termOffset]; Array.Copy(termBytes, 0, this.termBytes, 0, termOffset); // Pack skips: this.skips = new int[skipCount]; this.skipOffsets = new int[1 + numTerms]; int skipOffset = 0; for (int i = 0; i < numTerms; i++) { int[] termSkips = terms[i].skips; skipOffsets[i] = skipOffset; if (termSkips != null) { Array.Copy(termSkips, 0, skips, skipOffset, termSkips.Length); skipOffset += termSkips.Length; terms[i].skips = null; } } this.skipOffsets[numTerms] = skipOffset; Debug.Assert(skipOffset == skipCount); }
public override DocValuesProducer FieldsProducer(SegmentReadState state) { string filename = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, "dv", IndexFileNames.COMPOUND_FILE_EXTENSION); return(new Lucene40DocValuesReader(state, filename, Lucene40FieldInfosReader.LEGACY_DV_TYPE_KEY)); }
public override DocValuesProducer NormsProducer(SegmentReadState state) { return(new Lucene3xNormsProducer(state.Directory, state.SegmentInfo, state.FieldInfos, state.Context)); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: MemoryDocValuesProducer(index.SegmentReadState state, String dataCodec, String dataExtension, String metaCodec, String metaExtension) throws java.io.IOException internal MemoryDocValuesProducer(SegmentReadState state, string dataCodec, string dataExtension, string metaCodec, string metaExtension) { maxDoc = state.segmentInfo.DocCount; string metaName = IndexFileNames.segmentFileName(state.segmentInfo.name, state.segmentSuffix, metaExtension); // read in the entries from the metadata file. ChecksumIndexInput @in = state.directory.openChecksumInput(metaName, state.context); bool success = false; try { version = CodecUtil.checkHeader(@in, metaCodec, VERSION_START, VERSION_CURRENT); numerics = new Dictionary <>(); binaries = new Dictionary <>(); fsts = new Dictionary <>(); readFields(@in, state.fieldInfos); if (version >= VERSION_CHECKSUM) { CodecUtil.checkFooter(@in); } else { CodecUtil.checkEOF(@in); } ramBytesUsed_Renamed = new AtomicLong(RamUsageEstimator.shallowSizeOfInstance(this.GetType())); success = true; } finally { if (success) { IOUtils.close(@in); } else { IOUtils.closeWhileHandlingException(@in); } } success = false; try { string dataName = IndexFileNames.segmentFileName(state.segmentInfo.name, state.segmentSuffix, dataExtension); data = state.directory.openInput(dataName, state.context); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int version2 = codecs.CodecUtil.checkHeader(data, dataCodec, VERSION_START, VERSION_CURRENT); int version2 = CodecUtil.checkHeader(data, dataCodec, VERSION_START, VERSION_CURRENT); if (version != version2) { throw new CorruptIndexException("Format versions mismatch"); } success = true; } finally { if (!success) { IOUtils.closeWhileHandlingException(this.data); } } }
/// <summary> /// Returns a <see cref="DocValuesProducer"/> to read docvalues from the index. /// <para/> /// NOTE: by the time this call returns, it must hold open any files it will /// need to use; else, those files may be deleted. Additionally, required files /// may be deleted during the execution of this call before there is a chance /// to open them. Under these circumstances an <see cref="IOException"/> should be thrown by /// the implementation. <see cref="IOException"/>s are expected and will automatically cause /// a retry of the segment opening logic with the newly revised segments. /// </summary> public abstract DocValuesProducer FieldsProducer(SegmentReadState state);
public override FieldsProducer FieldsProducer(SegmentReadState state) { return new AssertingFieldsProducer(@in.FieldsProducer(state)); }
public override PostingsReaderBase PostingsReaderBase(SegmentReadState state) { return(new Lucene40PostingsReader(state.Directory, state.FieldInfos, state.SegmentInfo, state.Context, state.SegmentSuffix)); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: @Override public codecs.FieldsProducer fieldsProducer(index.SegmentReadState state) throws java.io.IOException public override FieldsProducer fieldsProducer(SegmentReadState state) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final String fileName = index.IndexFileNames.SegmentFileName(state.segmentInfo.name, state.segmentSuffix, EXTENSION); string fileName = IndexFileNames.SegmentFileName(state.segmentInfo.name, state.segmentSuffix, EXTENSION); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final store.ChecksumIndexInput in = state.directory.openChecksumInput(fileName, store.IOContext.READONCE); ChecksumIndexInput @in = state.directory.openChecksumInput(fileName, IOContext.READONCE); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.SortedMap<String,TermsReader> fields = new java.util.TreeMap<>(); SortedMap<string, TermsReader> fields = new SortedDictionary<string, TermsReader>(); try { CodecUtil.CheckHeader(@in, CODEC_NAME, VERSION_START, VERSION_CURRENT); while (true) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int termCount = in.readVInt(); int termCount = @in.readVInt(); if (termCount == 0) { break; } //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final TermsReader termsReader = new TermsReader(state.fieldInfos, in, termCount); TermsReader termsReader = new TermsReader(state.fieldInfos, @in, termCount); // System.out.println("load field=" + termsReader.field.name); fields.put(termsReader.field.name, termsReader); } CodecUtil.CheckFooter(@in); } finally { @in.close(); } return new FieldsProducerAnonymousInnerClassHelper(this, fields); }
public override FieldsProducer FieldsProducer(SegmentReadState state) { PostingsReaderBase docsReader = null; PostingsReaderBase pulsingReader = null; bool success = false; try { docsReader = _wrappedPostingsBaseFormat.PostingsReaderBase(state); pulsingReader = new PulsingPostingsReader(state, docsReader); FieldsProducer ret = new BlockTreeTermsReader( state.Directory, state.FieldInfos, state.SegmentInfo, pulsingReader, state.Context, state.SegmentSuffix, state.TermsIndexDivisor); success = true; return ret; } finally { if (!success) { IOUtils.CloseWhileHandlingException(docsReader, pulsingReader); } } }
public override FieldsProducer FieldsProducer(SegmentReadState state) { PostingsReaderBase postingsReader = new Lucene41PostingsReader(state.Directory, state.FieldInfos, state.SegmentInfo, state.Context, state.SegmentSuffix); bool success = false; try { FieldsProducer ret = new BlockTreeTermsReader(state.Directory, state.FieldInfos, state.SegmentInfo, postingsReader, state.Context, state.SegmentSuffix, state.TermsIndexDivisor); success = true; return ret; } finally { if (!success) { IOUtils.CloseWhileHandlingException(postingsReader); } } }
public BloomFilteredFieldsProducer(BloomFilteringPostingsFormat outerInstance, SegmentReadState state) { var bloomFileName = IndexFileNames.SegmentFileName( state.SegmentInfo.Name, state.SegmentSuffix, BLOOM_EXTENSION); ChecksumIndexInput bloomIn = null; var success = false; try { bloomIn = state.Directory.OpenChecksumInput(bloomFileName, state.Context); var version = CodecUtil.CheckHeader(bloomIn, /*BLOOM_CODEC_NAME*/ outerInstance.Name, VERSION_START, VERSION_CURRENT); // Load the hash function used in the BloomFilter // hashFunction = HashFunction.forName(bloomIn.readString()); // Load the delegate postings format var delegatePostingsFormat = ForName(bloomIn.ReadString()); _delegateFieldsProducer = delegatePostingsFormat .FieldsProducer(state); var numBlooms = bloomIn.ReadInt32(); for (var i = 0; i < numBlooms; i++) { var fieldNum = bloomIn.ReadInt32(); var bloom = FuzzySet.Deserialize(bloomIn); var fieldInfo = state.FieldInfos.FieldInfo(fieldNum); _bloomsByFieldName.Add(fieldInfo.Name, bloom); } if (version >= VERSION_CHECKSUM) { CodecUtil.CheckFooter(bloomIn); } else { #pragma warning disable 612, 618 CodecUtil.CheckEOF(bloomIn); #pragma warning restore 612, 618 } IOUtils.Dispose(bloomIn); success = true; } finally { if (!success) { IOUtils.DisposeWhileHandlingException(bloomIn, _delegateFieldsProducer); } } }
/// <summary> /// Returns a <see cref="DocValuesProducer"/> to read norms from the index. /// <para/> /// NOTE: by the time this call returns, it must hold open any files it will /// need to use; else, those files may be deleted. Additionally, required files /// may be deleted during the execution of this call before there is a chance /// to open them. Under these circumstances an <see cref="IOException"/> should be thrown by /// the implementation. <see cref="IOException"/> are expected and will automatically cause /// a retry of the segment opening logic with the newly revised segments. /// </summary> public abstract DocValuesProducer NormsProducer(SegmentReadState state);
public override DocValuesProducer NormsProducer(SegmentReadState state) { return(new Lucene42DocValuesProducer(state, DATA_CODEC, DATA_EXTENSION, METADATA_CODEC, METADATA_EXTENSION)); }
internal DiskDocValuesProducer(SegmentReadState state, string dataCodec, string dataExtension, string metaCodec, string metaExtension) : base(state, dataCodec, dataExtension, metaCodec, metaExtension) { }
public DirectFields(SegmentReadState state, Fields fields, int minSkipCount, int lowFreqCutoff) { foreach (string field in fields) { this.fields[field] = new DirectField(state, field, fields.Terms(field), minSkipCount, lowFreqCutoff); } }
public override FieldsProducer FieldsProducer(SegmentReadState state) { return(@delegate.FieldsProducer(state)); }
internal Lucene42DocValuesProducer(SegmentReadState state, string dataCodec, string dataExtension, string metaCodec, string metaExtension) { MaxDoc = state.SegmentInfo.DocCount; string metaName = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, metaExtension); // read in the entries from the metadata file. ChecksumIndexInput @in = state.Directory.OpenChecksumInput(metaName, state.Context); bool success = false; RamBytesUsed_Renamed = new AtomicLong(RamUsageEstimator.ShallowSizeOfInstance(this.GetType())); try { Version = CodecUtil.CheckHeader(@in, metaCodec, VERSION_START, VERSION_CURRENT); Numerics = new Dictionary<int, NumericEntry>(); Binaries = new Dictionary<int, BinaryEntry>(); Fsts = new Dictionary<int, FSTEntry>(); ReadFields(@in, state.FieldInfos); if (Version >= VERSION_CHECKSUM) { CodecUtil.CheckFooter(@in); } else { CodecUtil.CheckEOF(@in); } success = true; } finally { if (success) { IOUtils.Close(@in); } else { IOUtils.CloseWhileHandlingException(@in); } } success = false; try { string dataName = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, dataExtension); Data = state.Directory.OpenInput(dataName, state.Context); int version2 = CodecUtil.CheckHeader(Data, dataCodec, VERSION_START, VERSION_CURRENT); if (Version != version2) { throw new CorruptIndexException("Format versions mismatch"); } success = true; } finally { if (!success) { IOUtils.CloseWhileHandlingException(this.Data); } } }
// LUCENENET NOTE: Changed from public to internal because the class had to be made public, but is not for public use. internal SimpleTextDocValuesReader(SegmentReadState state, string ext) { data = state.Directory.OpenInput( IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, ext), state.Context); maxDoc = state.SegmentInfo.DocCount; while (true) { ReadLine(); if (scratch.Equals(SimpleTextDocValuesWriter.END)) { break; } Debug.Assert(StartsWith(SimpleTextDocValuesWriter.FIELD), scratch.Utf8ToString()); var fieldName = StripPrefix(SimpleTextDocValuesWriter.FIELD); var field = new OneField(); fields[fieldName] = field; ReadLine(); Debug.Assert(StartsWith(SimpleTextDocValuesWriter.TYPE), scratch.Utf8ToString()); var dvType = (DocValuesType) Enum.Parse(typeof(DocValuesType), StripPrefix(SimpleTextDocValuesWriter.TYPE)); if (dvType == DocValuesType.NUMERIC) { ReadLine(); Debug.Assert(StartsWith(SimpleTextDocValuesWriter.MINVALUE), "got " + scratch.Utf8ToString() + " field=" + fieldName + " ext=" + ext); field.MinValue = Convert.ToInt64(StripPrefix(SimpleTextDocValuesWriter.MINVALUE), CultureInfo.InvariantCulture); ReadLine(); Debug.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN)); field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN); field.DataStartFilePointer = data.GetFilePointer(); data.Seek(data.GetFilePointer() + (1 + field.Pattern.Length + 2) * maxDoc); } else if (dvType == DocValuesType.BINARY) { ReadLine(); Debug.Assert(StartsWith(SimpleTextDocValuesWriter.MAXLENGTH)); field.MaxLength = Convert.ToInt32(StripPrefix(SimpleTextDocValuesWriter.MAXLENGTH), CultureInfo.InvariantCulture); ReadLine(); Debug.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN)); field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN); field.DataStartFilePointer = data.GetFilePointer(); data.Seek(data.GetFilePointer() + (9 + field.Pattern.Length + field.MaxLength + 2) * maxDoc); } else if (dvType == DocValuesType.SORTED || dvType == DocValuesType.SORTED_SET) { ReadLine(); Debug.Assert(StartsWith(SimpleTextDocValuesWriter.NUMVALUES)); field.NumValues = Convert.ToInt64(StripPrefix(SimpleTextDocValuesWriter.NUMVALUES), CultureInfo.InvariantCulture); ReadLine(); Debug.Assert(StartsWith(SimpleTextDocValuesWriter.MAXLENGTH)); field.MaxLength = Convert.ToInt32(StripPrefix(SimpleTextDocValuesWriter.MAXLENGTH), CultureInfo.InvariantCulture); ReadLine(); Debug.Assert(StartsWith(SimpleTextDocValuesWriter.PATTERN)); field.Pattern = StripPrefix(SimpleTextDocValuesWriter.PATTERN); ReadLine(); Debug.Assert(StartsWith(SimpleTextDocValuesWriter.ORDPATTERN)); field.OrdPattern = StripPrefix(SimpleTextDocValuesWriter.ORDPATTERN); field.DataStartFilePointer = data.GetFilePointer(); data.Seek(data.GetFilePointer() + (9 + field.Pattern.Length + field.MaxLength) * field.NumValues + (1 + field.OrdPattern.Length) * maxDoc); } else { throw new ArgumentOutOfRangeException(); } } // We should only be called from above if at least one // field has DVs: Debug.Assert(fields.Count > 0); }
//static final boolean TEST = false; public FSTOrdTermsReader(SegmentReadState state, PostingsReaderBase postingsReader) { string termsIndexFileName = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, FSTOrdTermsWriter.TERMS_INDEX_EXTENSION); string termsBlockFileName = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, FSTOrdTermsWriter.TERMS_BLOCK_EXTENSION); this.postingsReader = postingsReader; ChecksumIndexInput indexIn = null; IndexInput blockIn = null; bool success = false; try { indexIn = state.Directory.OpenChecksumInput(termsIndexFileName, state.Context); blockIn = state.Directory.OpenInput(termsBlockFileName, state.Context); version = ReadHeader(indexIn); ReadHeader(blockIn); if (version >= FSTOrdTermsWriter.TERMS_VERSION_CHECKSUM) { CodecUtil.ChecksumEntireFile(blockIn); } this.postingsReader.Init(blockIn); SeekDir(blockIn); FieldInfos fieldInfos = state.FieldInfos; int numFields = blockIn.ReadVInt(); for (int i = 0; i < numFields; i++) { FieldInfo fieldInfo = fieldInfos.FieldInfo(blockIn.ReadVInt()); bool hasFreq = fieldInfo.FieldIndexOptions != FieldInfo.IndexOptions.DOCS_ONLY; long numTerms = blockIn.ReadVLong(); long sumTotalTermFreq = hasFreq ? blockIn.ReadVLong() : -1; long sumDocFreq = blockIn.ReadVLong(); int docCount = blockIn.ReadVInt(); int longsSize = blockIn.ReadVInt(); var index = new FST<long?>(indexIn, PositiveIntOutputs.Singleton); var current = new TermsReader(this, fieldInfo, blockIn, numTerms, sumTotalTermFreq, sumDocFreq, docCount, longsSize, index); var previous = fields[fieldInfo.Name] = current; CheckFieldSummary(state.SegmentInfo, indexIn, blockIn, current, previous); } if (version >= FSTOrdTermsWriter.TERMS_VERSION_CHECKSUM) { CodecUtil.CheckFooter(indexIn); } else { CodecUtil.CheckEOF(indexIn); } success = true; } finally { if (success) { IOUtils.Close(indexIn, blockIn); } else { IOUtils.CloseWhileHandlingException(indexIn, blockIn); } } }
public override sealed FieldsProducer FieldsProducer(SegmentReadState state) { return(new FieldsReader(state)); }
//static final boolean TEST = false; public FSTOrdTermsReader(SegmentReadState state, PostingsReaderBase postingsReader) { string termsIndexFileName = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, FSTOrdTermsWriter.TERMS_INDEX_EXTENSION); string termsBlockFileName = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, FSTOrdTermsWriter.TERMS_BLOCK_EXTENSION); this.postingsReader = postingsReader; ChecksumIndexInput indexIn = null; IndexInput blockIn = null; bool success = false; try { indexIn = state.Directory.OpenChecksumInput(termsIndexFileName, state.Context); blockIn = state.Directory.OpenInput(termsBlockFileName, state.Context); version = ReadHeader(indexIn); ReadHeader(blockIn); if (version >= FSTOrdTermsWriter.TERMS_VERSION_CHECKSUM) { CodecUtil.ChecksumEntireFile(blockIn); } this.postingsReader.Init(blockIn); SeekDir(blockIn); FieldInfos fieldInfos = state.FieldInfos; int numFields = blockIn.ReadVInt32(); for (int i = 0; i < numFields; i++) { FieldInfo fieldInfo = fieldInfos.FieldInfo(blockIn.ReadVInt32()); bool hasFreq = fieldInfo.IndexOptions != IndexOptions.DOCS_ONLY; long numTerms = blockIn.ReadVInt64(); long sumTotalTermFreq = hasFreq ? blockIn.ReadVInt64() : -1; long sumDocFreq = blockIn.ReadVInt64(); int docCount = blockIn.ReadVInt32(); int longsSize = blockIn.ReadVInt32(); var index = new FST <long?>(indexIn, PositiveInt32Outputs.Singleton); var current = new TermsReader(this, fieldInfo, blockIn, numTerms, sumTotalTermFreq, sumDocFreq, docCount, longsSize, index); TermsReader previous; // LUCENENET NOTE: This simulates a put operation in Java, // getting the prior value first before setting it. fields.TryGetValue(fieldInfo.Name, out previous); fields[fieldInfo.Name] = current; CheckFieldSummary(state.SegmentInfo, indexIn, blockIn, current, previous); } if (version >= FSTOrdTermsWriter.TERMS_VERSION_CHECKSUM) { CodecUtil.CheckFooter(indexIn); } else { #pragma warning disable 612, 618 CodecUtil.CheckEOF(indexIn); #pragma warning restore 612, 618 } success = true; } finally { if (success) { IOUtils.Dispose(indexIn, blockIn); } else { IOUtils.DisposeWhileHandlingException(indexIn, blockIn); } } }
public override FieldsProducer FieldsProducer(SegmentReadState state) { return(new AssertingFieldsProducer(@in.FieldsProducer(state))); }
public override DocValuesProducer FieldsProducer(SegmentReadState state) { return(null); // we have no docvalues, ever }
public override FieldsProducer FieldsProducer(SegmentReadState state) { return new BloomFilteredFieldsProducer(state); }
public override sealed DocValuesProducer FieldsProducer(SegmentReadState state) { return(new FieldsReader(this, state)); }
public BloomFilteredFieldsProducer(SegmentReadState state) { var bloomFileName = IndexFileNames.SegmentFileName( state.SegmentInfo.Name, state.SegmentSuffix, BLOOM_EXTENSION); ChecksumIndexInput bloomIn = null; var success = false; try { bloomIn = state.Directory.OpenChecksumInput(bloomFileName, state.Context); var version = CodecUtil.CheckHeader(bloomIn, BLOOM_CODEC_NAME, VERSION_START, VERSION_CURRENT); // Load the hash function used in the BloomFilter // hashFunction = HashFunction.forName(bloomIn.readString()); // Load the delegate postings format var delegatePostingsFormat = ForName(bloomIn.ReadString()); _delegateFieldsProducer = delegatePostingsFormat .FieldsProducer(state); var numBlooms = bloomIn.ReadInt(); for (var i = 0; i < numBlooms; i++) { var fieldNum = bloomIn.ReadInt(); var bloom = FuzzySet.Deserialize(bloomIn); var fieldInfo = state.FieldInfos.FieldInfo(fieldNum); _bloomsByFieldName.Add(fieldInfo.Name, bloom); } if (version >= VERSION_CHECKSUM) { CodecUtil.CheckFooter(bloomIn); } else { CodecUtil.CheckEOF(bloomIn); } IOUtils.Close(bloomIn); success = true; } finally { if (!success) { IOUtils.CloseWhileHandlingException(bloomIn, _delegateFieldsProducer); } } }
public FieldsReader(PerFieldDocValuesFormat outerInstance, SegmentReadState readState) { this.OuterInstance = outerInstance; // Read _X.per and init each format: bool success = false; try { // Read field name -> format name foreach (FieldInfo fi in readState.FieldInfos) { if (fi.HasDocValues()) { string fieldName = fi.Name; string formatName = fi.GetAttribute(PER_FIELD_FORMAT_KEY); if (formatName != null) { // null formatName means the field is in fieldInfos, but has no docvalues! string suffix = fi.GetAttribute(PER_FIELD_SUFFIX_KEY); Debug.Assert(suffix != null); DocValuesFormat format = DocValuesFormat.ForName(formatName); string segmentSuffix = GetFullSegmentSuffix(readState.SegmentSuffix, GetSuffix(formatName, suffix)); if (!Formats.ContainsKey(segmentSuffix)) { Formats[segmentSuffix] = format.FieldsProducer(new SegmentReadState(readState, segmentSuffix)); } Fields[fieldName] = Formats[segmentSuffix]; } } } success = true; } finally { if (!success) { IOUtils.CloseWhileHandlingException(Formats.Values); } } }
public override FieldsProducer FieldsProducer(SegmentReadState state) { string seedFileName = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, SEED_EXT); IndexInput @in = state.Directory.OpenInput(seedFileName, state.Context); long seed = @in.ReadInt64(); if (LuceneTestCase.Verbose) { Console.WriteLine("MockRandomCodec: reading from seg=" + state.SegmentInfo.Name + " formatID=" + state.SegmentSuffix + " seed=" + seed); } @in.Dispose(); Random random = new Random((int)seed); int readBufferSize = TestUtil.NextInt32(random, 1, 4096); if (LuceneTestCase.Verbose) { Console.WriteLine("MockRandomCodec: readBufferSize=" + readBufferSize); } PostingsReaderBase postingsReader; if (random.nextBoolean()) { if (LuceneTestCase.Verbose) { Console.WriteLine("MockRandomCodec: reading Sep postings"); } postingsReader = new SepPostingsReader(state.Directory, state.FieldInfos, state.SegmentInfo, state.Context, new MockInt32StreamFactory(random), state.SegmentSuffix); } else { if (LuceneTestCase.Verbose) { Console.WriteLine("MockRandomCodec: reading Standard postings"); } postingsReader = new Lucene41PostingsReader(state.Directory, state.FieldInfos, state.SegmentInfo, state.Context, state.SegmentSuffix); } if (random.nextBoolean()) { int totTFCutoff = TestUtil.NextInt32(random, 1, 20); if (LuceneTestCase.Verbose) { Console.WriteLine("MockRandomCodec: reading pulsing postings with totTFCutoff=" + totTFCutoff); } postingsReader = new PulsingPostingsReader(state, postingsReader); } FieldsProducer fields; int t1 = random.nextInt(4); if (t1 == 0) { bool success = false; try { fields = new FSTTermsReader(state, postingsReader); success = true; } finally { if (!success) { postingsReader.Dispose(); } } } else if (t1 == 1) { bool success = false; try { fields = new FSTOrdTermsReader(state, postingsReader); success = true; } finally { if (!success) { postingsReader.Dispose(); } } } else if (t1 == 2) { // Use BlockTree terms dict if (LuceneTestCase.Verbose) { Console.WriteLine("MockRandomCodec: reading BlockTree terms dict"); } bool success = false; try { fields = new BlockTreeTermsReader(state.Directory, state.FieldInfos, state.SegmentInfo, postingsReader, state.Context, state.SegmentSuffix, state.TermsIndexDivisor); success = true; } finally { if (!success) { postingsReader.Dispose(); } } } else { if (LuceneTestCase.Verbose) { Console.WriteLine("MockRandomCodec: reading Block terms dict"); } TermsIndexReaderBase indexReader; bool success = false; try { bool doFixedGap = random.NextBoolean(); // randomness diverges from writer, here: if (state.TermsIndexDivisor != -1) { state.TermsIndexDivisor = TestUtil.NextInt32(random, 1, 10); } if (doFixedGap) { // if termsIndexDivisor is set to -1, we should not touch it. It means a // test explicitly instructed not to load the terms index. if (LuceneTestCase.Verbose) { Console.WriteLine("MockRandomCodec: fixed-gap terms index (divisor=" + state.TermsIndexDivisor + ")"); } indexReader = new FixedGapTermsIndexReader(state.Directory, state.FieldInfos, state.SegmentInfo.Name, state.TermsIndexDivisor, BytesRef.UTF8SortedAsUnicodeComparer, state.SegmentSuffix, state.Context); } else { int n2 = random.Next(3); if (n2 == 1) { random.Next(); } else if (n2 == 2) { random.NextInt64(); } if (LuceneTestCase.Verbose) { Console.WriteLine("MockRandomCodec: variable-gap terms index (divisor=" + state.TermsIndexDivisor + ")"); } indexReader = new VariableGapTermsIndexReader(state.Directory, state.FieldInfos, state.SegmentInfo.Name, state.TermsIndexDivisor, state.SegmentSuffix, state.Context); } success = true; } finally { if (!success) { postingsReader.Dispose(); } } success = false; try { fields = new BlockTermsReader(indexReader, state.Directory, state.FieldInfos, state.SegmentInfo, postingsReader, state.Context, state.SegmentSuffix); success = true; } finally { if (!success) { try { postingsReader.Dispose(); } finally { indexReader.Dispose(); } } } } return(fields); }
internal Lucene42DocValuesProducer(SegmentReadState state, string dataCodec, string dataExtension, string metaCodec, string metaExtension) { maxDoc = state.SegmentInfo.DocCount; string metaName = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, metaExtension); // read in the entries from the metadata file. ChecksumIndexInput @in = state.Directory.OpenChecksumInput(metaName, state.Context); bool success = false; ramBytesUsed = new AtomicInt64(RamUsageEstimator.ShallowSizeOfInstance(this.GetType())); try { version = CodecUtil.CheckHeader(@in, metaCodec, VERSION_START, VERSION_CURRENT); numerics = new Dictionary <int, NumericEntry>(); binaries = new Dictionary <int, BinaryEntry>(); fsts = new Dictionary <int, FSTEntry>(); ReadFields(@in, state.FieldInfos); if (version >= VERSION_CHECKSUM) { CodecUtil.CheckFooter(@in); } else { #pragma warning disable 612, 618 CodecUtil.CheckEOF(@in); #pragma warning restore 612, 618 } success = true; } finally { if (success) { IOUtils.Dispose(@in); } else { IOUtils.DisposeWhileHandlingException(@in); } } success = false; try { string dataName = IndexFileNames.SegmentFileName(state.SegmentInfo.Name, state.SegmentSuffix, dataExtension); data = state.Directory.OpenInput(dataName, state.Context); int version2 = CodecUtil.CheckHeader(data, dataCodec, VERSION_START, VERSION_CURRENT); if (version != version2) { throw new CorruptIndexException("Format versions mismatch"); } success = true; } finally { if (!success) { IOUtils.DisposeWhileHandlingException(this.data); } } }
public override DocValuesProducer FieldsProducer(SegmentReadState state) { return new DiskDocValuesProducer(state, DATA_CODEC, DATA_EXTENSION, META_CODEC, META_EXTENSION); }
public override FieldsProducer FieldsProducer(SegmentReadState state) { throw new NotImplementedException(); }
public override FieldsProducer FieldsProducer(SegmentReadState state) { PostingsReaderBase postings = new Lucene40PostingsReader(state.Directory, state.FieldInfos, state.SegmentInfo, state.Context, state.SegmentSuffix); bool success = false; try { FieldsProducer ret = new BlockTreeTermsReader(state.Directory, state.FieldInfos, state.SegmentInfo, postings, state.Context, state.SegmentSuffix, state.TermsIndexDivisor); success = true; return ret; } finally { if (!success) { postings.Dispose(); } } }
public override FieldsProducer FieldsProducer(SegmentReadState state) { return(new Lucene3xFields(state.Directory, state.FieldInfos, state.SegmentInfo, state.Context, state.TermsIndexDivisor)); }