public void buildIndex() throws IOException { IndexReader.unlock(FSDirectory.getDirectory(luceneIndexDir, false)); indexWriter = new IndexWriter(luceneIndexDir, analyzer, true); Iterator catalogEntries = catalogDAO.getAllEntries(); while (catalogEntries.hasNext()) { CatalogEntry entry = (CatalogEntry) catalogEntries.next(); Document doc = documentBuilder.getLuceneDocument(entry); if (doc != null) { indexWriter.addDocument(doc); } } //optimize the index indexWriter.optimize(); //close the index indexWriter.close(); indexWriter = null; }