List of usage examples for org.apache.lucene.index IndexWriter commit
@Override public final long commit() throws IOException
Commits all pending changes (added and deleted documents, segment merges, added indexes, etc.) to the index, and syncs all referenced index files, such that a reader will see the changes and the index updates will survive an OS or machine crash or power loss.
From source file:org.codesearch.commons.configuration.IndexCleaner.java
License:Open Source License
public void cleanIndex() throws InvalidConfigurationException { // delete all lucene documents and database information associated to a repository that exists in the configuration // in case the repository configuraiton has changed since the last startup Directory indexDirectory;/*from w w w .jav a 2 s . c o m*/ IndexWriter indexWriter = null; try { indexDirectory = FSDirectory.open(configReader.getIndexLocation()); Analyzer analyzer = new StandardAnalyzer(IndexConstants.LUCENE_VERSION); IndexWriterConfig config = new IndexWriterConfig(IndexConstants.LUCENE_VERSION, analyzer); indexWriter = new IndexWriter(indexDirectory, config); List<String> invalidRepositories = indexStatusManager.getAllSavedRepositoryNames(); BooleanQuery query = new BooleanQuery(); for (RepositoryDto repository : configReader.getRepositories()) { invalidRepositories.remove(repository.getName()); } for (String invalidRepo : invalidRepositories) { dbAccess.deleteRepository(invalidRepo); if (!indexStatusManager.getStatus(invalidRepo).equals(VersionControlPlugin.UNDEFINED_VERSION)) { Query q = new TermQuery(new Term("repository", invalidRepo)); query.add(q, BooleanClause.Occur.SHOULD); indexStatusManager.setStatus(invalidRepo, VersionControlPlugin.UNDEFINED_VERSION); } } int countDocuments = indexWriter.maxDoc(); indexWriter.deleteDocuments(query); indexWriter.commit(); int countDeleted = countDocuments - indexWriter.maxDoc(); if (countDeleted > 0) { LOG.info("Deleted " + countDeleted + " documents from the Index since they belonged to repositories that were no longer found in the configuration."); } } catch (DatabaseAccessException ex) { throw new InvalidConfigurationException("Could not clean analysis data for unused repository" + ex); } catch (IOException ex) { throw new InvalidConfigurationException( "Index can not be opened for writing at: " + configReader.getIndexLocation() + "\n" + ex); } finally { try { indexWriter.close(); } catch (IOException ex) { LOG.error("Unable to close IndexWriter after cleaning up Lucene index\n" + ex); } } }
From source file:org.compass.core.lucene.engine.transaction.readcommitted.ReadCommittedTransactionProcessor.java
License:Apache License
@Override protected void doProcessJob(TransactionJob job) throws SearchEngineException { try {//from w w w .j a v a 2 s . c o m IndexWriter indexWriter = openIndexWriterIfNeeded(job.getSubIndex()); if (job instanceof DeleteTransactionJob) { DeleteTransactionJob deleteJob = (DeleteTransactionJob) job; markDeleted(deleteJob.getResourceKey()); // delete from the original index (autoCommit is false, so won't be committed) job.execute(indexWriter, searchEngineFactory); transIndexManager.processJob(job); } else if (job instanceof DeleteByQueryTransactionJob) { job.execute(indexWriter, searchEngineFactory); transIndexManager.processJob(job); } else if (job instanceof UpdateTransactionJob) { UpdateTransactionJob updateJob = (UpdateTransactionJob) job; Term deleteTerm = markDeleted(updateJob.getResource().getResourceKey()); // delete from the original index (autoCommit is false, so won't be committed indexWriter.deleteDocuments(deleteTerm); transIndexManager.processJob(job); } else if (job instanceof FlushCommitTransactionJob) { if (transIndexManager.hasTransIndex(job.getSubIndex())) { transIndexManager.commit(job.getSubIndex()); Directory transDir = transIndexManager.getDirectory(job.getSubIndex()); indexWriter.addIndexesNoOptimize(new Directory[] { transDir }); transIndexManager.close(job.getSubIndex()); } indexWriter.commit(); } else { // Create job transIndexManager.processJob(job); } } catch (Exception e) { throw new SearchEngineException("Failed to process job [" + job + "]", e); } }
From source file:org.compass.core.lucene.engine.transaction.support.job.FlushCommitTransactionJob.java
License:Apache License
public void execute(IndexWriter writer, LuceneSearchEngineFactory sessionFactory) throws Exception { writer.commit(); }
From source file:org.d2.plugins.lucene.LuceneIndexer.java
License:Apache License
/** * TODO stop the background thread and lock everything (including all reads) */// w w w . j a v a 2 s. c o m public void rebuildIndex(Collection<Object> objList) { try { manager.close(); manager = new LuceneManager(index); //writer = new IndexWriter(directory, analyzer, true, IndexWriter.MaxFieldLength.LIMITED); IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_36, analyzer); if (index instanceof NRTCachingDirectory) config.setMergeScheduler(((NRTCachingDirectory) index).getMergeScheduler()); IndexWriter writer = new IndexWriter(manager.getIndex(), config); for (Object obj : objList) { Document d = (Document) docBuilder.toDocument(obj); writer.addDocument(d); } //writer.optimize(); writer.commit(); manager.close(); manager = new LuceneManager(index); } catch (CorruptIndexException e) { throw Util.wrap(e); } catch (IOException e) { throw Util.wrap(e); } }
From source file:org.deeplearning4j.text.invertedindex.LuceneInvertedIndex.java
License:Apache License
private void initReader() { if (reader == null) { try {/*w w w . ja v a 2 s . c om*/ ensureDirExists(); if (getWriter() == null) { this.indexWriter = null; while (getWriter() == null) { log.warn("Writer was null...reinitializing"); Thread.sleep(1000); } } IndexWriter writer = getWriter().getIndexWriter(); if (writer == null) throw new IllegalStateException("index writer was null"); searcherManager = new SearcherManager(writer, true, new SearcherFactory()); writer.commit(); readerManager = new ReaderManager(dir); DirectoryReader reader = readerManager.acquire(); numDocs = readerManager.acquire().numDocs(); readerManager.release(reader); } catch (Exception e) { throw new RuntimeException(e); } } }
From source file:org.eclipse.dirigible.repository.ext.indexing.LuceneMemoryIndexer.java
License:Open Source License
@Override public void indexDocument(Object document) throws EIndexingException { try {/*from ww w .j a v a 2 s. c om*/ synchronized (directory) { logger.debug("entering: indexDocument(Document document) : " + indexName); //$NON-NLS-1$ Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_35); IndexWriterConfig config = null; IndexWriter iwriter = null; try { config = new IndexWriterConfig(Version.LUCENE_35, analyzer); iwriter = new IndexWriter(directory, config); iwriter.addDocument((Document) document); iwriter.commit(); lastIndexed = new Date(); } finally { if (iwriter != null) { iwriter.close(); } } logger.debug("exiting: indexRepository(IRepository repository) : " + indexName); //$NON-NLS-1$ } } catch (Exception e) { throw new EIndexingException(e); } }
From source file:org.eclipse.dirigible.repository.ext.indexing.LuceneMemoryIndexer.java
License:Open Source License
@Override public void deleteDocument(Object document) throws EIndexingException { try {//from w ww . j av a 2 s. co m synchronized (directory) { logger.debug("entering: indexDocument(Document document) : " + indexName); //$NON-NLS-1$ Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_35); IndexWriterConfig config = null; IndexWriter iwriter = null; try { config = new IndexWriterConfig(Version.LUCENE_35, analyzer); iwriter = new IndexWriter(directory, config); Term term = new Term(FIELD_ID, ((Document) document).get(FIELD_ID)); iwriter.deleteDocuments(term); iwriter.commit(); lastIndexed = new Date(); } finally { if (iwriter != null) { iwriter.close(); } } logger.debug("exiting: indexRepository(IRepository repository) : " + indexName); //$NON-NLS-1$ } } catch (Exception e) { throw new EIndexingException(e); } }
From source file:org.eclipse.dirigible.repository.ext.indexing.LuceneMemoryIndexer.java
License:Open Source License
@Override public void updateDocument(Object document) throws EIndexingException { try {// www . j a va 2 s . c o m synchronized (directory) { logger.debug("entering: indexDocument(Document document) : " + indexName); //$NON-NLS-1$ Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_35); IndexWriterConfig config = null; IndexWriter iwriter = null; try { config = new IndexWriterConfig(Version.LUCENE_35, analyzer); iwriter = new IndexWriter(directory, config); Term term = new Term(FIELD_ID, ((Document) document).get(FIELD_ID)); iwriter.updateDocument(term, (Document) document); iwriter.commit(); lastIndexed = new Date(); } finally { if (iwriter != null) { iwriter.close(); } } logger.debug("exiting: indexRepository(IRepository repository) : " + indexName); //$NON-NLS-1$ } } catch (Exception e) { throw new EIndexingException(e); } }
From source file:org.eclipse.dirigible.repository.ext.indexing.RepositoryMemoryIndexer.java
License:Open Source License
private static void indexResource(IndexWriter iwriter, IResource resource) throws CorruptIndexException, IOException { logger.debug("entering: indexResource(IndexWriter iwriter, IResource resource)"); //$NON-NLS-1$ if (!resource.isBinary()) { if (!indexedResources.contains(resource.getPath())) { logger.debug("Indexing resource: " + resource.getPath()); //$NON-NLS-1$ Document doc = createDocument(resource); iwriter.addDocument(doc);// ww w. j a va 2 s . c o m iwriter.commit(); logger.debug("Resource: " + resource.getPath() + " indexed successfully"); //$NON-NLS-1$ //$NON-NLS-2$ indexedResources.add(resource.getPath()); } else { if (lastIndexed.before(resource.getInformation().getModifiedAt())) { logger.debug("Updating index for resource: " + resource.getPath()); //$NON-NLS-1$ Document doc = createDocument(resource); Term term = new Term(FIELD_PATH, resource.getPath()); iwriter.updateDocument(term, doc); iwriter.commit(); logger.debug("For resource: " + resource.getPath() + " index updated successfully"); //$NON-NLS-1$ //$NON-NLS-2$ } else { logger.debug("Skip indexing for unmodified resource: " + resource.getPath()); //$NON-NLS-1$ } } } else { logger.debug("Skip indexing for binary resource: " + resource.getPath()); //$NON-NLS-1$ } logger.debug("exiting: indexResource(IndexWriter iwriter, IResource resource)"); //$NON-NLS-1$ }
From source file:org.eclipse.dltk.internal.core.index.lucene.IndexContainer.java
License:Open Source License
synchronized void commit(IProgressMonitor monitor, boolean mergeDeletes) { int ticks = 1; for (Map<?, ?> dataWriters : fIndexWriters.values()) { ticks += dataWriters.size();/*from www .jav a2 s . com*/ } SubMonitor subMonitor = SubMonitor.convert(monitor, ticks); try { for (Map<Integer, IndexWriter> dataWriters : fIndexWriters.values()) { for (IndexWriter writer : dataWriters.values()) { if (writer != null && !subMonitor.isCanceled()) { writer.forceMergeDeletes(mergeDeletes); writer.commit(); subMonitor.worked(1); } } } if (fTimestampsWriter != null && !subMonitor.isCanceled()) { fTimestampsWriter.forceMergeDeletes(mergeDeletes); fTimestampsWriter.commit(); subMonitor.worked(1); } subMonitor.done(); } catch (IOException e) { Logger.logException(e); } }