On 8/20/06, lude <[EMAIL PROTECTED]> wrote:
Hello,

when using the new IndexModifier of Lucene 2.0, what would be
the best creation-pattern?

Should there be one IndexModifier instance in the application (==singelton)?
Could an IndexModifier be opened for a longer time or should it be created
on use and immediately closed?
You create an indexmodifier if you want to modify your index. if you
wanna commit your data (make it available via index reader / searcher)
you close or rather flush your indexmodifier. After closing the
modifier you can create a new searcher and all modifications are
visible to the searcher / reader. Basically there is one index
modifier (or one single modifying instances per index as you must not
modify your index with more that one instance of indexreader -writer
-modifier). If you use the flush() method you don't need to create a
new IndexModifier instance.

You can leave your indexmod. open for a long time but without a commit
the indexed or deleted documents won't be visible to your searcher /
reader) Opening indexmodifiers is a heavy operation which should be
used carefully so you can close your modifier every n docs or after a
certain idle time.
Just be aware that IndexModifier uses IndexReader and IndexWriter
internally so if you do a delete after a addDocument the indexwriter
will be closed and a new indexreader will be opened. This is also a
heavy operation in the meaning of performance.
You could keep your deletes until you want to flush your instance of
IndexModifier to gain a bit of performance.

Another issue:
- I create an IndexModifier
- The applicaton crashes
- There exists a write-lock on the index
--> Next time I start the application the IndexModifier couldn't be opened
because of the locks.

What is the right way to check and delete old write locks?
You can use the IndexReader.unlock(Directory dir) method the java doc says:

  * Caution: this should only be used by failure recovery code,
  * when it is known that no other process nor thread is in fact
  * currently accessing this index.

To make sure this happens only in recovery mode.

best regards Simon

Thanks
lude



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

Reply via email to