[
https://issues.apache.org/jira/browse/LUCENE-2887?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986364#action_12986364
]
Doron Cohen commented on LUCENE-2887:
-------------------------------------
I think it is correct to say that "if the result of ir.numDeletedDocs() is N,
then calling ir.undeleteAll() will delete exactly N documents"... or am I
missing it?
Because if a merge was invoked for the segments seen by this reader, I see two
options:
# A merge is on going, or the merge is done but uncommitted yet.
This means that an index writer has a lock on the index, hence
ir.undeleteAll() will fail to get the lock.
# The a merge was already committed.
This means that the index reader will fail to get write permission for being
Stale.
So I think this method behaves deterministically - perhaps its jdoc should say
something like:
*Undeletes all #numDeletedDocs() documents currently marked as deleted in this
index.* ?
> Remove/deprecate IndexReader.undeleteAll
> ----------------------------------------
>
> Key: LUCENE-2887
> URL: https://issues.apache.org/jira/browse/LUCENE-2887
> Project: Lucene - Java
> Issue Type: Improvement
> Reporter: Michael McCandless
> Assignee: Michael McCandless
> Fix For: 3.1
>
>
> This API is rather dangerous in that it's "best effort" since it can only
> un-delete docs that have not yet been merged away, or, dropped (as of
> LUCENE-2010).
> Given that it exposes impl details of how Lucene prunes deleted docs, I think
> we should remove this API.
> Are there legitimate use cases....?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]