You should really close the IndexSearcher rather than the directory.

Andy33 wrote:
I have a memory leak in my lucene search code. I am able to run a few queries
fine, but I eventually run out of memory. Please note that I do close and
set to null the ivIndexSearcher object elsewhere. Here is the code I am
using...

private synchronized Hits doQuery(String field, String queryStr, Sort
sortOrder, String indexDirectory) throws Exception
    {
        Directory directory = null;
        
        try
        {
            Analyzer analyzer = new StandardAnalyzer();
directory = FSDirectory.getDirectory(indexDirectory); //search the index
            ivIndexSearcher = new IndexSearcher(directory);
QueryParser parser = new QueryParser(field, analyzer);
            Query query = parser.parse(queryStr);
            Hits results = ivIndexSearcher.search(query, sortOrder);
return results;
        }       
        finally
{ if(null != directory)
            {
                directory.close();
            }
            directory = null;
        }
    }


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to