Does anyone have any thoughts or feelings about this?

There is also Robert Engels IndexReader.reopen():

  http://article.gmane.org/gmane.comp.jakarta.lucene.devel/9082/match=reopen

(I couldn't find this in JIRA - is it sharable?)

Thanks,
Otis


----- Original Message ----
From: Otis Gospodnetic <[EMAIL PROTECTED]>
To: java-dev@lucene.apache.org
Sent: Monday, December 4, 2006 5:35:20 PM
Subject: Exposing IndexReader commit()

Hello,

I'm wondering about opening up commit() in IndexReader.  It's currently 
"protected".

We'd like to be able to control the flushing of deletes to disk, and it looks 
like that's what IndexReader's commit() does.  We tried extending SegmentReader 
with our own version that overrides commit() and let's us call it.  This worked 
for indices with a single segment, because they are read by SegmentReader.  
However, this didn't work with multi-segment indices, because unlike 
SegmentReader, MultiReader doesn't know how to dynamically load a custom 
MultiReader.
Both SegmentReader and MultiReader extend IndexReader, which contains that 
protected commit().

Next, we thought we'd try extending IndexReader and using our own IndexReader, 
but since Segment|MultiReader extend IndexReader directly, I don't think this 
approach would work.

In the end, we just made commit() public in IndexReader, and solved our problem 
for both single and multi-segment indices.

Is there a better way to control flushing to disk without closing and 
re-opening an IndexReader, which is more expensive than just commit()ing.
If not, what do you think about making commit() public and javadocing it with 
"Expert:...."?

Thanks,
Otis




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





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

Reply via email to