Hello there! My application uses multiple indexes, so I create a multireader based on my indexreaders. What I've done is create a Map of Readers, and whenever the user needs a reader I iterate over my collection, checking if it is the current index, if not I reopen it, else, I add it to my multireader.
So, for each thread I have a new MultiReader, but my readers are kept open for a long period (few updates to the index, many reads). But I also create a new Searcher based on the Multireader for each thread. On the faqs it says that we should have only one searcher as well. The overhead of the searcher creation is due to the reader it uses or it has an internal overhead forcing other to have a single instance of it as well? Regards -- "In a world without fences and walls, who needs Gates and Windows?"