java.lang.Object
org.apache.lucene.index.PendingDeletes
- Direct Known Subclasses:
PendingSoftDeletes
This class handles accounting and applying pending deletes for live segment readers
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final SegmentCommitInfoprivate Bits(package private) booleanprotected intprivate FixedBitSet -
Constructor Summary
ConstructorsConstructorDescriptionPendingDeletes(SegmentCommitInfo info, Bits liveDocs, boolean liveDocsInitialized) PendingDeletes(SegmentReader reader, SegmentCommitInfo info) -
Method Summary
Modifier and TypeMethodDescriptionprivate booleanassertCheckLiveDocs(Bits bits, int expectedLength, int expectedDeleteCount) (package private) booleandelete(int docID) Marks a document as deleted in this segment and return true if a document got actually deleted or if the document was already deleted.(package private) voidResets the pending docs(package private) final intReturns the number of deleted docs in the segment.(package private) BitsReturns a snapshot of the hard live docs.(package private) BitsReturns a snapshot of the current live docs.protected FixedBitSet(package private) booleanisFullyDeleted(IOSupplier<CodecReader> readerIOSupplier) Returnstrueiff the segment represented by thisPendingDeletesis fully deleted(package private) booleanReturnstrueif we have to initialize this PendingDeletes beforedelete(int); otherwise this PendingDeletes is ready to accept deletes.(package private) final booleanneedsRefresh(CodecReader reader) Returns true if the given reader needs to be refreshed in order to see the latest deletes(package private) intnumDeletesToMerge(MergePolicy policy, IOSupplier<CodecReader> readerIOSupplier) (package private) final intnumDocs()Returns the number of live documents in this segmentprotected intReturns the number of pending deletes that are not written to disk.(package private) voidonDocValuesUpdate(FieldInfo info, DocValuesFieldUpdates.Iterator iterator) Called for every field update for the given field at flush time(package private) voidonNewReader(CodecReader reader, SegmentCommitInfo info) Called once a new reader is opened for this segment ie.toString()(package private) booleanverifyDocCounts(CodecReader reader) (package private) booleanwriteLiveDocs(Directory dir) Writes the live docs to disk and returnstrueif any new docs were written.
-
Field Details
-
info
-
liveDocs
-
writeableLiveDocs
-
pendingDeleteCount
protected int pendingDeleteCount -
liveDocsInitialized
boolean liveDocsInitialized
-
-
Constructor Details
-
PendingDeletes
PendingDeletes(SegmentReader reader, SegmentCommitInfo info) -
PendingDeletes
PendingDeletes(SegmentCommitInfo info) -
PendingDeletes
PendingDeletes(SegmentCommitInfo info, Bits liveDocs, boolean liveDocsInitialized)
-
-
Method Details
-
getMutableBits
-
delete
Marks a document as deleted in this segment and return true if a document got actually deleted or if the document was already deleted.- Throws:
IOException
-
getLiveDocs
Bits getLiveDocs()Returns a snapshot of the current live docs. -
getHardLiveDocs
Bits getHardLiveDocs()Returns a snapshot of the hard live docs. -
numPendingDeletes
protected int numPendingDeletes()Returns the number of pending deletes that are not written to disk. -
onNewReader
Called once a new reader is opened for this segment ie. when deletes or updates are applied.- Throws:
IOException
-
assertCheckLiveDocs
-
dropChanges
void dropChanges()Resets the pending docs -
toString
-
writeLiveDocs
Writes the live docs to disk and returnstrueif any new docs were written.- Throws:
IOException
-
isFullyDeleted
Returnstrueiff the segment represented by thisPendingDeletesis fully deleted- Throws:
IOException
-
onDocValuesUpdate
Called for every field update for the given field at flush time- Parameters:
info- the field info of the field that's updatediterator- the values to apply- Throws:
IOException
-
numDeletesToMerge
int numDeletesToMerge(MergePolicy policy, IOSupplier<CodecReader> readerIOSupplier) throws IOException - Throws:
IOException
-
needsRefresh
Returns true if the given reader needs to be refreshed in order to see the latest deletes -
getDelCount
final int getDelCount()Returns the number of deleted docs in the segment. -
numDocs
final int numDocs()Returns the number of live documents in this segment -
verifyDocCounts
-
mustInitOnDelete
boolean mustInitOnDelete()Returnstrueif we have to initialize this PendingDeletes beforedelete(int); otherwise this PendingDeletes is ready to accept deletes. A PendingDeletes can be initialized by providing it a reader viaonNewReader(CodecReader, SegmentCommitInfo).
-