Class SnapshotDeletionPolicy
A IndexDeletionPolicy that wraps around any other IndexDeletionPolicy and adds the ability to hold and later release a single "snapshot" of an index. While the snapshot is held, the IndexWriter will not remove any files associated with it even if the index is otherwise being actively, arbitrarily changed. Because we wrap another arbitrary IndexDeletionPolicy, this gives you the freedom to continue using whatever IndexDeletionPolicy you would normally want to use with your index. Note that you can re-use a single instance of SnapshotDeletionPolicy across multiple writers as long as they are against the same index Directory. Any snapshot held when a writer is closed will "survive" when the next writer is opened.
WARNING: This API is a new and experimental and may suddenly change.
Inheritance
Namespace:
Assembly: Lucene.Net.NetCore.dll
Syntax
public class SnapshotDeletionPolicy : object, IndexDeletionPolicy
Constructors
Name | Description |
---|---|
SnapshotDeletionPolicy(IndexDeletionPolicy) |
Methods
Name | Description |
---|---|
OnCommit<T>(IList<T>) | |
OnInit<T>(IList<T>) | |
Release() | Release the currently held snapshot. |
Snapshot() | Take a snapshot of the most recent commit to the index. You must call release() to free this snapshot. Note that while the snapshot is held, the files it references will not be deleted, which will consume additional disk space in your index. If you take a snapshot at a particularly bad time (say just before you call optimize()) then in the worst case this could consume an extra 1X of your total index size, until you release the snapshot. |