You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael McCandless (JIRA)" <ji...@apache.org> on 2015/06/04 11:11:41 UTC

[jira] [Created] (LUCENE-6524) Create an IndexWriter from an already opened NRT or non-NRT reader

Michael McCandless created LUCENE-6524:
------------------------------------------

             Summary: Create an IndexWriter from an already opened NRT or non-NRT reader
                 Key: LUCENE-6524
                 URL: https://issues.apache.org/jira/browse/LUCENE-6524
             Project: Lucene - Core
          Issue Type: Improvement
            Reporter: Michael McCandless
            Assignee: Michael McCandless
             Fix For: Trunk, 5.3


I'd like to add a new ctor to IndexWriter, letting you start from an already
opened NRT or non-NRT DirectoryReader.  I think this is a long missing
API in Lucene today, and we've talked in the past about different ways
to fix it e.g. factoring out a shared reader pool between writer and reader.

One use-case, which I hit in LUCENE-5376: if you have a read-only
index, so you've opened a non-NRT DirectoryReader to search it, and
then you want to "upgrade" to a read/write index, we don't handle that
very gracefully now because you are forced to open 2X the
SegmentReaders.

But with this API, IW populates its reader pool with the incoming
SegmentReaders so they are shared on any subsequent NRT reopens /
segment merging / deletes applying, etc.

Another (more expert) use case is allowing rollback to an NRT-point.
Today, you can only rollback to a commit point (segments_N).  But an
NRT reader also reflects a valid "point in time" view of the index (it
just doesn't have a segments_N file, and its ref'd files are not
fsync'd), so with this change you can close your old writer, open a
new one from this NRT point, and revert all changes that had been done
after the NRT reader was opened from the old writer.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org