An old issue (http://issues.apache.org/jira/browse/LUCENE-325 new
method expungeDeleted() added to IndexWriter) requested a similar
functionality as described in the latter half of your email.

The patch for that issue breaks the invariants of the new merge
policy. An algorithm similar to that of addIndexesNoOptimize()
(http://issues.apache.org/jira/browse/LUCENE-528 Optimization for
IndexWriter.addIndexes()) would solve the problem.

Ning

On 12/5/06, Ning Li <[EMAIL PROTECTED]> wrote:
> I'd like to open up the API to mergeSegments() in IndexWriter and am
> wondering if there are potential problems with this.

I'm worried that opening up mergeSegments() could easily break the
invariants currently guaranteed by the new merge
policy(http://issues.apache.org/jira/browse/LUCENE-672).

The two invariants say that if M does not change and segment doc count
is not reaching maxMergeDocs:
B for maxBufferedDocs, f(n) defined as ceil(log_M(ceil(n/B)))
1: If i (left*) and i+1 (right*) are two consecutive segments of doc
counts x and y, then f(x) >= f(y).
2: The number of committed segments on the same level (f(n)) <= M.

Ning


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to