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:com.vmware.xenon.services.common.LuceneDocumentIndexService.java
License:Open Source License
public IndexWriter createWriter(File directory, boolean doUpgrade) throws Exception { Analyzer analyzer = new SimpleAnalyzer(); IndexWriterConfig iwc = new IndexWriterConfig(analyzer); Long totalMBs = getHost().getServiceMemoryLimitMB(getSelfLink(), MemoryLimitType.EXACT); if (totalMBs != null) { long cacheSizeMB = (totalMBs * 3) / 4; cacheSizeMB = Math.max(1, cacheSizeMB); iwc.setRAMBufferSizeMB(cacheSizeMB); this.linkAccessMemoryLimitMB = totalMBs / 4; }/*from w w w . j av a 2s .c o m*/ Directory dir = MMapDirectory.open(directory.toPath()); // Upgrade the index in place if necessary. if (doUpgrade && DirectoryReader.indexExists(dir)) { upgradeIndex(dir); } iwc.setOpenMode(OpenMode.CREATE_OR_APPEND); iwc.setIndexDeletionPolicy(new SnapshotDeletionPolicy(new KeepOnlyLastCommitDeletionPolicy())); IndexWriter w = new IndexWriter(dir, iwc); w.commit(); synchronized (this.searchSync) { this.writer = w; this.linkAccessTimes.clear(); this.indexUpdateTimeMicros = Utils.getNowMicrosUtc(); this.indexWriterCreationTimeMicros = this.indexUpdateTimeMicros; } return this.writer; }
From source file:com.vmware.xenon.services.common.LuceneDocumentIndexService.java
License:Open Source License
private void handleMaintenanceImpl(boolean forceMerge) throws Throwable { try {/* www. jav a 2 s . c o m*/ long start = Utils.getNowMicrosUtc(); IndexWriter w = this.writer; if (w == null) { return; } setStat(STAT_NAME_INDEXED_DOCUMENT_COUNT, w.maxDoc()); adjustStat(STAT_NAME_COMMIT_COUNT, 1.0); long end = Utils.getNowMicrosUtc(); setStat(STAT_NAME_COMMIT_DURATION_MICROS, end - start); IndexSearcher s = updateSearcher(null, Integer.MAX_VALUE, w); if (s == null) { return; } applyDocumentExpirationPolicy(w); applyDocumentVersionRetentionPolicy(); w.commit(); applyMemoryLimit(); applyTimeSeriesStatsUpdates(); boolean reOpenWriter = applyIndexSearcherAndFileLimit(); if (!forceMerge && !reOpenWriter) { return; } reOpenWriterSynchronously(); } catch (Throwable e) { if (this.getHost().isStopping()) { return; } logWarning("Attempting recovery due to error: %s", e.getMessage()); reOpenWriterSynchronously(); throw e; } }
From source file:com.wrmsr.search.dsl.SearchServiceImpl.java
License:Apache License
@Override public synchronized void commit() throws IOException { checkState(this.indexWriter.isPresent()); Lock lock = indexSearcherLock.writeLock(); try {//from w w w. j a v a 2s . c o m lock.lock(); if (this.indexSearcher.isPresent()) { IndexSearcher indexSearcher = this.indexSearcher.get(); indexSearcher.getIndexReader().close(); this.indexSearcher = Optional.empty(); } IndexWriter indexWriter = this.indexWriter.get(); indexWriter.commit(); indexWriter.close(); IndexReader indexReader = IndexReader.open(directory); IndexSearcher indexSearcher = new IndexSearcher(indexReader); this.indexSearcher = Optional.of(indexSearcher); } finally { lock.unlock(); } }
From source file:com.yida.framework.lucene5.facet.DistanceFacetsExample.java
License:Creative Commons License
/** * /*from w ww .j a v a2s .co m*/ */ public void index() throws IOException { IndexWriter writer = new IndexWriter(indexDir, new IndexWriterConfig(new WhitespaceAnalyzer())); // ??(?FacetField) Document doc = new Document(); doc.add(new DoubleDocValuesField("latitude", 40.759011)); doc.add(new DoubleDocValuesField("longitude", -73.9844722)); writer.addDocument(doc); doc = new Document(); doc.add(new DoubleDocValuesField("latitude", 40.718266)); doc.add(new DoubleDocValuesField("longitude", -74.007819)); writer.addDocument(doc); doc = new Document(); doc.add(new DoubleDocValuesField("latitude", 40.7051157)); doc.add(new DoubleDocValuesField("longitude", -74.0088305)); writer.addDocument(doc); /*doc.add(new DoubleField("latitude", 40.759011, Field.Store.YES)); doc.add(new DoubleField("longitude", -73.9844722, Field.Store.YES)); writer.addDocument(doc); doc = new Document(); doc.add(new DoubleField("latitude", 40.718266, Field.Store.YES)); doc.add(new DoubleField("longitude", -74.007819, Field.Store.YES)); writer.addDocument(doc); doc = new Document(); doc.add(new DoubleField("latitude", 40.7051157, Field.Store.YES)); doc.add(new DoubleField("longitude", -74.0088305, Field.Store.YES)); writer.addDocument(doc); */ searcher = new IndexSearcher(DirectoryReader.open(writer, true)); writer.commit(); writer.close(); }
From source file:de.berlios.jhelpdesk.utils.LuceneIndexer.java
License:Open Source License
public synchronized void addToIndex(Article article) { IndexWriter indexWriter = null; try {/*from ww w . j a v a 2 s . c o m*/ indexWriter = getIndexWriter(); indexWriter.addDocument(articleToDocument(article)); indexWriter.commit(); } catch (Exception ex) { log.error(ex.getMessage(), ex); throw new RuntimeException(ex); } finally { closeWriter(indexWriter); } }
From source file:de.berlios.jhelpdesk.utils.LuceneIndexer.java
License:Open Source License
public synchronized void updateIndexedArticle(Article article) { IndexWriter indexWriter = null; try {/* w ww. java 2 s. c o m*/ Document document = articleToDocument(article); indexWriter = getIndexWriter(); indexWriter.updateDocument(new Term("id", String.valueOf(article.getArticleId())), document); indexWriter.commit(); } catch (Exception ex) { log.error(ex.getMessage(), ex); throw new RuntimeException(ex); } finally { closeWriter(indexWriter); } }
From source file:de.berlios.jhelpdesk.utils.LuceneIndexer.java
License:Open Source License
public synchronized void removeIndexedArticle(Long articleId) { IndexWriter indexWriter = null; try {//from w w w. j a v a 2s .c om indexWriter = getIndexWriter(); indexWriter.deleteDocuments(new Term("id", String.valueOf(articleId))); indexWriter.commit(); } catch (Exception ex) { log.error(ex.getMessage(), ex); throw new RuntimeException(ex); } finally { closeWriter(indexWriter); } }
From source file:de.berlios.jhelpdesk.utils.LuceneIndexer.java
License:Open Source License
@PostConstruct protected final void initializeIndex() { try {/*w w w . j a va 2 s . c o m*/ IndexWriter w = getIndexWriter(); w.commit(); w.close(); } catch (Exception ex) { log.error(ex.getMessage(), ex); throw new RuntimeException(ex); } }
From source file:de.blizzy.documentr.search.AllDocIdsCollectorTest.java
License:Open Source License
@Before public void setUp() throws IOException { directory = new RAMDirectory(); StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_40); IndexWriterConfig writerConfig = new IndexWriterConfig(Version.LUCENE_40, analyzer); writerConfig.setOpenMode(OpenMode.CREATE_OR_APPEND); IndexWriter writer = new IndexWriter(directory, writerConfig); writer.addDocument(createDocument()); writer.addDocument(createDocument()); writer.addDocument(createDocument()); writer.commit(); writer.close(true);/*from www . ja va 2 s .c o m*/ reader = DirectoryReader.open(directory); }
From source file:de.blizzy.documentr.search.GetSearchHitTaskTest.java
License:Open Source License
@Before public void setUp() throws IOException { directory = new RAMDirectory(); StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_40); IndexWriterConfig writerConfig = new IndexWriterConfig(Version.LUCENE_40, analyzer); writerConfig.setOpenMode(OpenMode.CREATE_OR_APPEND); IndexWriter writer = new IndexWriter(directory, writerConfig); writer.addDocument(createDocument("project", "branch", "home", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ new String[] { "tag1", "tag2" }, //$NON-NLS-1$ //$NON-NLS-2$ "title", "some text")); //$NON-NLS-1$ //$NON-NLS-2$ writer.commit(); writer.close(true);/* w ww .j a v a 2 s . c om*/ reader = DirectoryReader.open(directory); Query query = new TermQuery(new Term("text", "some")); //$NON-NLS-1$ //$NON-NLS-2$ task = new GetSearchHitTask(query, reader, 0, analyzer); }