Dear Nicolas

If you were to provide a patch and send it to bugzilla (then notify me of the bug #) I would be happy to review it.

regards Jeremy


On 15 Nov 2004, at 23:34, Nicolas Maisonneuve wrote:

the method to update a document is not optimized (reindexDocument
method). this actual behavior is :

1- open reader if not open (but in fact it's always closed because of line 3)
2-delete document
3-close reader
4-open writer
5- write index
6-close index

(NOTE: with this behavior, the merge factor is useless because this
method index only one document for a opening of indexwriter)

- A optimization in lucene is to avoid to open and close  indexreader
and indexwriter a lot of times.

so i propose this simple optimization :
1- open reader if not open
2- delete document
3-store lucene document in a buffer (Stack)

// flush the buffer
if ((buffer % max_buffer)==0) {

   // switch to write mode
4-   close reader
5-   open writer
   for (1 to max_buffer)  {
6-      write
    }
7- close writer
}


with this kind of method, 1 - with a buffer of 100 doc, you divide the number of switching mode (writ/read) to 100 , and the indexing is much much faster 2- the merge factor is really useful because the indexwriter index more than 1 document


i've developped a Index component with 2 implemenations 1 indexerDefault with this kind of method 2- MultiThreadIndexer optimized for multiple CPU

maybe it could be interesting to integred this components to the lucene Block

Nicolas Maisonneuve


--------------------------------------------------------

                  If email from this address is not signed
                                IT IS NOT FROM ME

                        Always check the label, folks !!!!!
--------------------------------------------------------


Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to