Example usage for org.apache.lucene.index IndexWriter commit

List of usage examples for org.apache.lucene.index IndexWriter commit

Introduction

In this page you can find the example usage for org.apache.lucene.index IndexWriter commit.

Prototype

@Override
public final long commit() throws IOException 

Source Link

Document

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.

Usage

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);
}