If you are looking for a reasonable performance you should not close your IndexSearcher if not necessary. It is actually best practice to leave an IndexSearcher instance open an even share it between threads / requests of your webapplication. The searcher will not pollute your memory. Just keep the searcher open to utilize the lucene internals like caches and reopen the searcher only if really required this will most likely give you the best performance.
regards simon On Wed, Sep 3, 2008 at 7:31 PM, Andy33 <[EMAIL PROTECTED]> wrote: > > I took your advice and created Singletons for the Directory, Analyzer, and > IndexSearcher classes. I also undid the closing of the Directory and > IndexSearcher. This seemed to fix my memory leak problem. However, I don't > like the fact that I am leaving open the IndexSearcher for the entire life > of a web application. When I close the IndexSearcher, the underlying > IndexReader is also closed. It looks like the only way I can reopen the > IndexSearcher is to reopen the IndexReader and create a new IndexSearcher. > This leads me back to my original problem. > > Is there a better way to handle this rather than keeping the IndexSeacher > open for the life of the application? > > > > 장용석 wrote: >> >> I think when your doQuery method is run, Directory and Analyzer classes >> are >> new create every time. >> If index file's size is very large then create new Directory instance is >> pressure to jvm and it takes long time for create new Directory instance. >> I suggest that modify the code , Analyzer class and Directory class that >> singletone pattern. >> (If you can....Search Class,too) >> > > -- > View this message in context: > http://www.nabble.com/Lucene-Memory-Leak-tp19276999p19294053.html > Sent from the Lucene - Java Users mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >