Expert: policy for deletion of stale {@link IndexCommitPoint index commits}. /// ///
Implement this interface, and pass it to one /// of the {@link IndexWriter} or {@link IndexReader} /// constructors, to customize when older /// {@link IndexCommitPoint point-in-time commits} /// are deleted from the index directory. The default deletion policy /// is {@link KeepOnlyLastCommitDeletionPolicy}, which always /// removes old commits as soon as a new commit is done (this /// matches the behavior before 2.2).
/// ///One expected use case for this (and the reason why it /// was first created) is to work around problems with an /// index directory accessed via filesystems like NFS because /// NFS does not provide the "delete on last close" semantics /// that Lucene's "point in time" search normally relies on. /// By implementing a custom deletion policy, such as "a /// commit is only removed once it has been stale for more /// than X minutes", you can give your readers time to /// refresh to the new commit before {@link IndexWriter} /// removes the old commits. Note that doing so will /// increase the storage requirements of the index. See LUCENE-710 /// for details.
///This is called once when a writer is first /// instantiated to give the policy a chance to remove old /// commit points.
/// ///The writer locates all index commits present in the /// index directory and calls this method. The policy may /// choose to delete some of the commit points, doing so by /// calling method {@link IndexCommitPoint#delete delete()} /// of {@link IndexCommitPoint}.
/// ///Note: the last CommitPoint is the most recent one, /// i.e. the "front index state". Be careful not to delete it, /// unless you know for sure what you are doing, and unless /// you can afford to lose the index content while doing that. /// ///
This is called each time the writer completed a commit. /// This gives the policy a chance to remove old commit points /// with each commit.
/// ///The policy may now choose to delete old commit points /// by calling method {@link IndexCommitPoint#delete delete()} /// of {@link IndexCommitPoint}.
/// ///If writer has autoCommit = true
then
/// this method will in general be called many times during
/// one instance of {@link IndexWriter}. If
/// autoCommit = false
then this method is
/// only called once when {@link IndexWriter#close} is
/// called, or not at all if the {@link IndexWriter#abort}
/// is called.
///
///
Note: the last CommitPoint is the most recent one, /// i.e. the "front index state". Be careful not to delete it, /// unless you know for sure what you are doing, and unless /// you can afford to lose the index content while doing that. /// ///