Your best bet is to use a searcher manager to manage the searcher instance,
and only refresh the manager if writes are committed. This way the same
searcher instances can be shared by multiple threads.
For the paging, if you want to have a guaranteed consistent view, you have
to keep around the se
I've this scenario in a web application:
1. many users query a Lucene index concurrently (obvious)
2. one user can make several queries (she may have different browser
windows open)
3. all those queries need to have a consistent paging behavior (next,
previous buttons)
4. The index can be updated