Hi,

We're writing a web application, which naturally needs
- "IndexSearcher" when users use our search screen
- "IndexWriter" in a background process that periodically updates and optimizes 
our index.
Note our writer is exclusive - no other applications/threads ever write to our 
index files.

What's the common practice in terms of resource creation and sharing?
Specifically:

1) Should I have a single IndexSearcher to serve all (concurrent) users?
I saw such a recommendation in a tutorial, but discovered that an open 
IndexSearcher prevents 'optimize' from merging my files... so should I close it 
just before optimization? Or should I open an individual (short-lived) 
IndexSearcher for each search request?

2) Our tests also imply that IndexWriter.optimize()  takes effect only after 
you close() that writer - which is a shame, because I hoped to keep using the 
same writer (I hear it's expensive to instantiate). I doing something wrong? 

Thanks



      

Reply via email to