lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Morus Walter <>
Subject Re: Best Practices for indexing in Web application
Date Mon, 01 Mar 2004 12:09:20 GMT
Michael Steiger writes:
> Hello Lucene Users,
> I have a web application using Oracle as the database and I want to add 
> fulltext query capablities. My idea was to extend the existing insert, 
> update and delete methods of my backend classes to add, delete/add and 
> delete respectively.
> I'm new to Lucene and after a bit of googling and reading I found a few 
> issues which I do not know how to resolve in the moment.
> 1. Concurrency of IndexWriter and IndexReader
> It seems that it is not allowed to open an IndexWriter and an 
> IndexReader at the same time. But if one user is changing records in the 
> database (and therefore changing documents in the Lucene index) and 
> another user is querying the index, I would need to open them both.
You can have one IndexWriter and an arbitray number of IndexReaders, that
don't write to the index.
Despite it's name IndexReader is used for deletions. Since this is a write
operation, it cannot be done, while a IndexWrite is open.
But that's the only limitation.

IndexReaders will not see changes introduced by writers until they are
closed and reopened. And one should be aware that keeping the Readers open
after changes means that the associated files are kept open, which may result
in too many open files.

> 2. Optimizing the index
> This is maybe related to my first issue.
> I assume that while optimizing the index no queries are allowed. How 
> often should the index be optimized?
AFAIK there's no problem with searching during optimizing of an index.

IIRC the FAQ says, that optimizing should only be done, if you know, that
your index won't change for some time.
As far as I understand lucenes indexing, the reason is, that lucene will
automatically merge the index files (based on MergeFactor), which is, 
what optimizing does.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message