serera at gmail
Jun 27, 2012, 11:53 PM
Post #4 of 4
You could extend IndexWriter to AutoCommitIndexWriter and override flush()
to call super.flush() then commit() (or simply just commit()). I haven't
tested it but I think it should work.
However, make sure you understand the implications of commit() -- it's
heavier than just flush. Perhaps you can avoid calling commit() frequently,
and use NRT to obtain a fresh IndexReader over the flushed yet uncommitted
If you don't want to periodically reopen that reader, then you could check
after every addDocument if the IW RAM size has decreased (which indicates
flush occurred), or move to use flush-by-doc-count and reopen every
Hope this helps.
On Thu, Jun 28, 2012 at 9:42 AM, Aditya <findbestopensource [at] gmail>wrote:
> Hi Ram,
> I guess IndexWriter.SetMaxBufferedDocs will help...
> On Wed, Jun 27, 2012 at 11:25 AM, Ramprakash Ramamoorthy <
> youngestachiever [at] gmail> wrote:
> > Dear,
> > I am using Lucene for my log search tool. Is there a way I can
> > automatically perform a commit operation on my IndexWriter when a
> > particular set of docs is flushed from memory to the disk. My
> > is 24Mb and MergeFactor is 10.
> > Or is calling commit in manually calculated frequent intervals
> > irrespective of the flushes the only way? I wish the autocommit feature
> > was not deprecated.
> > --
> > With Thanks and Regards,
> > Ramprakash Ramamoorthy,
> > Engineer Trainee,
> > Zoho Corporation.
> > +91 9626975420