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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]