@Override public boolean keepFullyDeletedSegment(IOSupplier<CodecReader> readerIOSupplier) throws IOException { return super.keepFullyDeletedSegment(readerIOSupplier); }
@Override public boolean keepFullyDeletedSegment(IOSupplier<CodecReader> readerIOSupplier) throws IOException { return in.keepFullyDeletedSegment(readerIOSupplier); }
boolean keepFullyDeletedSegment(MergePolicy mergePolicy) throws IOException { return mergePolicy.keepFullyDeletedSegment(this::getLatestReader); } }
try { final SegmentReader reader = rld.getReadOnlyClone(IOContext.READ); if (reader.numDocs() > 0 || writer.getConfig().mergePolicy.keepFullyDeletedSegment(() -> reader)) {
/** Close segment states previously opened with openSegmentStates. */ public static BufferedUpdatesStream.ApplyDeletesResult closeSegmentStates(IndexWriter writer, BufferedUpdatesStream.SegmentState[] segStates, boolean success) throws IOException { List<SegmentCommitInfo> allDeleted = null; long totDelCount = 0; final List<BufferedUpdatesStream.SegmentState> segmentStates = Arrays.asList(segStates); for (BufferedUpdatesStream.SegmentState segState : segmentStates) { if (success) { totDelCount += segState.rld.getDelCount() - segState.startDelCount; int fullDelCount = segState.rld.getDelCount(); assert fullDelCount <= segState.rld.info.info.maxDoc() : fullDelCount + " > " + segState.rld.info.info.maxDoc(); if (segState.rld.isFullyDeleted() && writer.getConfig().getMergePolicy().keepFullyDeletedSegment(() -> segState.reader) == false) { if (allDeleted == null) { allDeleted = new ArrayList<>(); } allDeleted.add(segState.reader.getOriginalSegmentInfo()); } } } IOUtils.close(segmentStates); if (writer.infoStream.isEnabled("BD")) { writer.infoStream.message("BD", "closeSegmentStates: " + totDelCount + " new deleted documents; pool " + writer.getPendingUpdatesCount()+ " packets; bytesUsed=" + writer.getReaderPoolRamBytesUsed()); } return new BufferedUpdatesStream.ApplyDeletesResult(totDelCount > 0, allDeleted); }
boolean keepFullyDeletedSegment(MergePolicy mergePolicy) throws IOException { return mergePolicy.keepFullyDeletedSegment(this::getLatestReader); } }
@Override public boolean keepFullyDeletedSegment(IOSupplier<CodecReader> readerIOSupplier) throws IOException { return super.keepFullyDeletedSegment(readerIOSupplier); }
@Override public boolean keepFullyDeletedSegment(IOSupplier<CodecReader> readerIOSupplier) throws IOException { return in.keepFullyDeletedSegment(readerIOSupplier); }
try { final SegmentReader reader = rld.getReadOnlyClone(IOContext.READ); if (reader.numDocs() > 0 || writer.getConfig().mergePolicy.keepFullyDeletedSegment(() -> reader)) {
/** Close segment states previously opened with openSegmentStates. */ public static BufferedUpdatesStream.ApplyDeletesResult closeSegmentStates(IndexWriter writer, BufferedUpdatesStream.SegmentState[] segStates, boolean success) throws IOException { List<SegmentCommitInfo> allDeleted = null; long totDelCount = 0; final List<BufferedUpdatesStream.SegmentState> segmentStates = Arrays.asList(segStates); for (BufferedUpdatesStream.SegmentState segState : segmentStates) { if (success) { totDelCount += segState.rld.getDelCount() - segState.startDelCount; int fullDelCount = segState.rld.getDelCount(); assert fullDelCount <= segState.rld.info.info.maxDoc() : fullDelCount + " > " + segState.rld.info.info.maxDoc(); if (segState.rld.isFullyDeleted() && writer.getConfig().getMergePolicy().keepFullyDeletedSegment(() -> segState.reader) == false) { if (allDeleted == null) { allDeleted = new ArrayList<>(); } allDeleted.add(segState.reader.getOriginalSegmentInfo()); } } } IOUtils.close(segmentStates); if (writer.infoStream.isEnabled("BD")) { writer.infoStream.message("BD", "closeSegmentStates: " + totDelCount + " new deleted documents; pool " + writer.getPendingUpdatesCount()+ " packets; bytesUsed=" + writer.getReaderPoolRamBytesUsed()); } return new BufferedUpdatesStream.ApplyDeletesResult(totDelCount > 0, allDeleted); }