From 58476b1675befd88776c72fb7b178c294a39edae Mon Sep 17 00:00:00 2001 From: Mike McCandless Date: Fri, 2 Dec 2016 15:30:37 -0500 Subject: [PATCH] improve IW javadocs --- .../org/apache/lucene/index/IndexWriter.java | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java b/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java index 68f3b3b6b2d..98687855231 100644 --- a/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java +++ b/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java @@ -133,19 +133,24 @@ import org.apache.lucene.util.Version;

Expert: IndexWriter allows an optional - {@link IndexDeletionPolicy} implementation to be - specified. You can use this to control when prior commits - are deleted from the index. The default policy is {@link - KeepOnlyLastCommitDeletionPolicy} which removes all prior - commits as soon as a new commit is done (this matches - behavior before 2.2). Creating your own policy can allow - you to explicitly keep previous "point in time" commits - alive in the index for some time, to allow readers to - refresh to the new commit without having the old commit - deleted out from under them. This is necessary on - filesystems like NFS that do not support "delete on last - close" semantics, which Lucene's "point in time" search - normally relies on.

+ {@link IndexDeletionPolicy} implementation to be specified. You + can use this to control when prior commits are deleted from + the index. The default policy is {@link KeepOnlyLastCommitDeletionPolicy} + which removes all prior commits as soon as a new commit is + done. Creating your own policy can allow you to explicitly + keep previous "point in time" commits alive in the index for + some time, either because this is useful for your application, + or to give readers enough time to refresh to the new commit + without having the old commit deleted out from under them. + The latter is necessary when multiple computers take turns opening + their own {@code IndexWriter} and {@code IndexReader}s + against a single shared index mounted via remote filesystems + like NFS which do not support "delete on last close" semantics. + A single computer accessing an index via NFS is fine with the + default deletion policy since NFS clients emulate "delete on + last close" locally. That said, accessing an index via NFS + will likely result in poor performance compared to a local IO + device.

Expert: IndexWriter allows you to separately change