/// <summary> /// Merge the TermVectors from each of the segments into the new one. </summary> /// <exception cref="IOException"> if there is a low-level IO error </exception> private int MergeVectors() { TermVectorsWriter termVectorsWriter = codec.TermVectorsFormat.VectorsWriter(directory, mergeState.SegmentInfo, context); try { return(termVectorsWriter.Merge(mergeState)); } finally { termVectorsWriter.Dispose(); } }
/// <summary> /// Merge the TermVectors from each of the segments into the new one. </summary> /// <exception cref="IOException"> if there is a low-level IO error </exception> private int MergeVectors() { TermVectorsWriter termVectorsWriter = Codec.TermVectorsFormat().VectorsWriter(Directory, MergeState.SegmentInfo, Context); try { return(termVectorsWriter.Merge(MergeState)); } finally { termVectorsWriter.Dispose(); } }
/// <summary> Merge the TermVectors from each of the segments into the new one.</summary> /// <throws> IOException </throws> private void MergeVectors() { TermVectorsWriter termVectorsWriter = new TermVectorsWriter(directory, segment, fieldInfos); try { int idx = 0; foreach (IndexReader reader in readers) { SegmentReader matchingSegmentReader = matchingSegmentReaders[idx++]; TermVectorsReader matchingVectorsReader = null; if (matchingSegmentReader != null) { TermVectorsReader vectorsReader = matchingSegmentReader.GetTermVectorsReaderOrig(); // If the TV* files are an older format then they cannot read raw docs: if (vectorsReader != null && vectorsReader.CanReadRawDocs()) { matchingVectorsReader = vectorsReader; } } if (reader.HasDeletions) { CopyVectorsWithDeletions(termVectorsWriter, matchingVectorsReader, reader); } else { CopyVectorsNoDeletions(termVectorsWriter, matchingVectorsReader, reader); } } } finally { termVectorsWriter.Dispose(); } System.String fileName = segment + "." + IndexFileNames.VECTORS_INDEX_EXTENSION; long tvxSize = directory.FileLength(fileName); if (4 + ((long)mergedDocs) * 16 != tvxSize) { // This is most likely a bug in Sun JRE 1.6.0_04/_05; // we detect that the bug has struck, here, and // throw an exception to prevent the corruption from // entering the index. See LUCENE-1282 for // details. throw new System.SystemException("mergeVectors produced an invalid result: mergedDocs is " + mergedDocs + " but tvx size is " + tvxSize + " file=" + fileName + " file exists?=" + directory.FileExists(fileName) + "; now aborting this merge to prevent index corruption"); } }
/// <summary> Merge the TermVectors from each of the segments into the new one.</summary> /// <throws> IOException </throws> private void MergeVectors() { TermVectorsWriter termVectorsWriter = new TermVectorsWriter(directory, segment, fieldInfos); try { int idx = 0; foreach(IndexReader reader in readers) { SegmentReader matchingSegmentReader = matchingSegmentReaders[idx++]; TermVectorsReader matchingVectorsReader = null; if (matchingSegmentReader != null) { TermVectorsReader vectorsReader = matchingSegmentReader.GetTermVectorsReaderOrig(); // If the TV* files are an older format then they cannot read raw docs: if (vectorsReader != null && vectorsReader.CanReadRawDocs()) { matchingVectorsReader = vectorsReader; } } if (reader.HasDeletions) { CopyVectorsWithDeletions(termVectorsWriter, matchingVectorsReader, reader); } else { CopyVectorsNoDeletions(termVectorsWriter, matchingVectorsReader, reader); } } } finally { termVectorsWriter.Dispose(); } System.String fileName = segment + "." + IndexFileNames.VECTORS_INDEX_EXTENSION; long tvxSize = directory.FileLength(fileName); if (4 + ((long) mergedDocs) * 16 != tvxSize) // This is most likely a bug in Sun JRE 1.6.0_04/_05; // we detect that the bug has struck, here, and // throw an exception to prevent the corruption from // entering the index. See LUCENE-1282 for // details. throw new System.SystemException("mergeVectors produced an invalid result: mergedDocs is " + mergedDocs + " but tvx size is " + tvxSize + " file=" + fileName + " file exists?=" + directory.FileExists(fileName) + "; now aborting this merge to prevent index corruption"); }