lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael McCandless <luc...@mikemccandless.com>
Subject Re: Move from RAMDirectory to FSDirectory causing problem sometimes
Date Tue, 08 Jul 2008 09:56:44 GMT

Technically you should call directory.close() as well, but missing  
that will not lead to too many open files.

How often is that RuntimeException being thrown?  EG if a single  
document is frequently hitting an exception during analysis, your code  
doesn't close the IndexWriter in that situation.  It's better to use a  
try/finally and close the IndexWriter in the finally clause, to cover  
that case.

Are you sure nothing else is using up file descriptors?  EG the  
createDocument call does not open any files?

Mike

Paul Taylor wrote:

> Hi, I have been using a RAMDirectory for indexing without any  
> problem, but I then moved to a file based directory to reduce memory  
> usage. this has been working fine on Windows and OSX and my version  
> of linux (redhat) but is failing on a version of linux (archlinux)  
> with 'Too many files opened' , but they are only indexing 32  
> documents , I can index thousands without a problem. It mentions  
> this error in the Lucene FAQ but I am not dealing directly with the  
> filesystem myself, this is my code for creating an index is it okay  
> or is there some kind of close that I am missing
>
> thanks for any help Paul
>
> public synchronized void reindex()
>   {
>       MainWindow.logger.info("Reindex start:" + new Date());
>       TableModel tableModel = table.getModel();
>       try
>       {
>           //Recreate the RAMDirectory uses too much memory
>           //directory = new RAMDirectory();
>           directory =  
> FSDirectory.getDirectory(Platform.getPlatformLicenseFolder()+ "/" +  
> TAG_BROWSER_INDEX);
>           IndexWriter writer = new IndexWriter(directory, analyzer,  
> true);
>
>           //Iterate through all rows
>           for (int row = 0; row < tableModel.getRowCount(); row++)
>           {
>               //for each row make a new document
>               Document document = createDocument(row);
>               writer.addDocument(document);
>
>           }
>           writer.optimize();
>           writer.close();
>       }
>       catch (Exception e)
>       {
>           throw new RuntimeException("Problem indexing Data:" +  
> e.getMessage());
>       }
> }
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message