final SegmentMerger merger = new SegmentMerger(mergeReaders, merge.info.info, infoStream, dirWrapper, globalFieldNumberMap, if (merger.shouldMerge()) { merger.merge(); if (merger.shouldMerge()) { String pauseInfo = merge.getMergeProgress().getPauseTimes().entrySet() .stream() if (merger.shouldMerge() == false) {
if (!shouldMerge()) { throw new IllegalStateException("Merge would result in 0 document segment"); mergeFieldInfos(); long t0 = 0; if (mergeState.infoStream.isEnabled("SM")) { t0 = System.nanoTime(); int numMerged = mergeFields(); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime(); mergeTerms(segmentWriteState); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime(); mergeDocValues(segmentWriteState); mergePoints(segmentWriteState); mergeNorms(segmentWriteState); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime(); numMerged = mergeVectors(); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime();
/** * Merges the readers specified by the {@link #add} method into the directory passed to the constructor * @return The number of documents that were merged * @throws IOException */ final int merge() throws IOException { int value; value = mergeFields(); mergeTerms(); mergeNorms(); if (fieldInfos.hasVectors()) mergeVectors(); if (useCompoundFile) createCompoundFile(); return value; }
if (infoStream != null) infoStream.print("merging segments"); SegmentMerger merger = new SegmentMerger(directory, mergedName, useCompoundFile); infoStream.print(" " + si.name + " (" + si.docCount + " docs)"); IndexReader reader = new SegmentReader(si); merger.add(reader); if ((reader.directory() == this.directory) || // if we own the directory (reader.directory() == this.ramDirectory)) int mergedDocCount = merger.merge(); merger.closeReaders();
merger = new SegmentMerger(this, mergedName, null); merger.add(sReader); merger.add(readers[i]); int docCount = merger.merge(); // merge 'em -1, null, false, merger.hasProx()); segmentInfos.add(info); merger.createCompoundFile(mergedName + ".cfs"); synchronized(this) { info.setUseCompoundFile(true);
/** Merges the provided indexes into this index. * <p>After this completes, the index is optimized. </p> * <p>The provided IndexReaders are not closed.</p> */ public synchronized void addIndexes(IndexReader[] readers) throws IOException { optimize(); // start with zero or 1 seg String mergedName = newSegmentName(); SegmentMerger merger = new SegmentMerger(directory, mergedName, false); if (segmentInfos.size() == 1) // add existing index, if any merger.add(new SegmentReader(segmentInfos.info(0))); for (int i = 0; i < readers.length; i++) // add new indexes merger.add(readers[i]); int docCount = merger.merge(); // merge 'em segmentInfos.setSize(0); // pop old infos & add new segmentInfos.addElement(new SegmentInfo(mergedName, docCount, directory)); synchronized (directory) { // in- & inter-process sync new Lock.With(directory.makeLock("commit.lock"), COMMIT_LOCK_TIMEOUT) { public Object doBody() throws IOException { segmentInfos.write(directory); // commit changes return null; } }.run(); } }
/** * Merges the readers specified by the {@link #add} method into the directory passed to the constructor * @return The number of documents that were merged * @throws CorruptIndexException if the index is corrupt * @throws IOException if there is a low-level IO error */ final int merge() throws CorruptIndexException, IOException { return merge(true); }
/** * Merges the readers specified by the {@link #add} method * into the directory passed to the constructor. * @param mergeDocStores if false, we will not merge the * stored fields nor vectors files * @return The number of documents that were merged * @throws CorruptIndexException if the index is corrupt * @throws IOException if there is a low-level IO error */ final int merge(boolean mergeDocStores) throws CorruptIndexException, IOException { this.mergeDocStores = mergeDocStores; // NOTE: it's important to add calls to // checkAbort.work(...) if you make any changes to this // method that will spend alot of time. The frequency // of this check impacts how long // IndexWriter.close(false) takes to actually stop the // threads. mergedDocs = mergeFields(); mergeTerms(); mergeNorms(); if (mergeDocStores && fieldInfos.hasVectors()) mergeVectors(); return mergedDocs; }
message("merging " + merge.segString(directory)); merger = new SegmentMerger(this, mergedName, merge); SegmentInfo si = sourceSegmentsClone.info(i); IndexReader reader = SegmentReader.get(true, si, MERGE_READ_BUFFER_SIZE, merge.mergeDocStores); // no need to set deleter (yet) merger.add(reader); totDocCount += reader.numDocs(); mergedDocCount = merge.info.docCount = merger.merge(merge.mergeDocStores); merger.closeReaders(); merger.createCompoundFile(compoundFileName); success = true; } catch (IOException ioe) {
merger = new SegmentMerger(this, mergedName, null); merger.add(sReader); merger.add(readers[i]); int docCount = merger.merge(); // merge 'em -1, null, false, merger.hasProx()); segmentInfos.add(info); merger.createCompoundFile(mergedName + ".cfs"); synchronized(this) { info.setUseCompoundFile(true);
/** * Merges the readers specified by the {@link #add} method into the directory passed to the constructor * @return The number of documents that were merged * @throws CorruptIndexException if the index is corrupt * @throws IOException if there is a low-level IO error */ final int merge() throws CorruptIndexException, IOException { return merge(true); }
if (!shouldMerge()) { throw new IllegalStateException("Merge would result in 0 document segment"); mergeFieldInfos(); long t0 = 0; if (mergeState.infoStream.isEnabled("SM")) { t0 = System.nanoTime(); int numMerged = mergeFields(); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime(); t0 = System.nanoTime(); mergeTerms(segmentWriteState); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime(); mergeDocValues(segmentWriteState); mergeNorms(segmentWriteState); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime(); numMerged = mergeVectors(); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime();
/** * Merges the readers specified by the {@link #add} method * into the directory passed to the constructor. * @param mergeDocStores if false, we will not merge the * stored fields nor vectors files * @return The number of documents that were merged * @throws CorruptIndexException if the index is corrupt * @throws IOException if there is a low-level IO error */ final int merge(boolean mergeDocStores) throws CorruptIndexException, IOException { this.mergeDocStores = mergeDocStores; // NOTE: it's important to add calls to // checkAbort.work(...) if you make any changes to this // method that will spend alot of time. The frequency // of this check impacts how long // IndexWriter.close(false) takes to actually stop the // threads. mergedDocs = mergeFields(); mergeTerms(); mergeNorms(); if (mergeDocStores && fieldInfos.hasVectors()) mergeVectors(); return mergedDocs; }
false, codec, Collections.emptyMap(), StringHelper.randomId(), new HashMap<>(), config.getIndexSort()); SegmentMerger merger = new SegmentMerger(Arrays.asList(readers), info, infoStream, trackingDir, globalFieldNumberMap, context); if (!merger.shouldMerge()) { return docWriter.deleteQueue.getNextSequenceNumber(); merger.merge(); // merge 'em SegmentCommitInfo infoPerCommit = new SegmentCommitInfo(info, 0, numSoftDeleted, -1L, -1L, -1L);
message("merging " + merge.segString(directory)); merger = new SegmentMerger(this, mergedName, merge); SegmentInfo si = sourceSegmentsClone.info(i); IndexReader reader = SegmentReader.get(true, si, MERGE_READ_BUFFER_SIZE, merge.mergeDocStores); // no need to set deleter (yet) merger.add(reader); totDocCount += reader.numDocs(); mergedDocCount = merge.info.docCount = merger.merge(merge.mergeDocStores); merger.closeReaders(); merger.createCompoundFile(compoundFileName); success = true; } catch (IOException ioe) {
if (!shouldMerge()) { throw new IllegalStateException("Merge would result in 0 document segment"); mergeFieldInfos(); long t0 = 0; if (mergeState.infoStream.isEnabled("SM")) { t0 = System.nanoTime(); int numMerged = mergeFields(); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime(); mergeTerms(segmentWriteState); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime(); mergeDocValues(segmentWriteState); mergePoints(segmentWriteState); mergeNorms(segmentWriteState); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime(); numMerged = mergeVectors(); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime();
final SegmentMerger merger = new SegmentMerger(mergeReaders, merge.info.info, infoStream, dirWrapper, globalFieldNumberMap, if (merger.shouldMerge()) { merger.merge(); if (merger.shouldMerge()) { String pauseInfo = merge.getMergeProgress().getPauseTimes().entrySet() .stream() if (merger.shouldMerge() == false) {
if (!shouldMerge()) { throw new IllegalStateException("Merge would result in 0 document segment"); mergeFieldInfos(); long t0 = 0; if (mergeState.infoStream.isEnabled("SM")) { t0 = System.nanoTime(); int numMerged = mergeFields(); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime(); t0 = System.nanoTime(); mergeTerms(segmentWriteState); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime(); mergeDocValues(segmentWriteState); mergeNorms(segmentWriteState); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime(); numMerged = mergeVectors(); if (mergeState.infoStream.isEnabled("SM")) { long t1 = System.nanoTime();
false, codec, Collections.<String,String>emptyMap(), StringHelper.randomId(), new HashMap<String,String>()); SegmentMerger merger = new SegmentMerger(Arrays.asList(readers), info, infoStream, trackingDir, globalFieldNumberMap, context); if (!merger.shouldMerge()) { return; merger.merge(); // merge 'em
false, codec, Collections.<String,String>emptyMap(), StringHelper.randomId(), new HashMap<String,String>()); SegmentMerger merger = new SegmentMerger(Arrays.asList(readers), info, infoStream, trackingDir, globalFieldNumberMap, context); if (!merger.shouldMerge()) { return; merger.merge(); // merge 'em