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.fuerve.villageelder.search.SearcherTest.java

License:Apache License

/**
 * Test method for {@link com.fuerve.villageelder.search.Searcher#initializeSearch()}.
 *///ww w . jav  a2 s . c o m
@SuppressWarnings("unused")
@Test
public final void testInitializeSearch() throws Exception {
    // Gather declared fields.
    Field indexDirectoryField = Searcher.class.getDeclaredField("indexDirectory");
    Field taxonomyDirectoryField = Searcher.class.getDeclaredField("taxonomyDirectory");
    Field indexDirectoryNameField = Searcher.class.getDeclaredField("indexDirectoryName");
    Field taxonomyDirectoryNameField = Searcher.class.getDeclaredField("taxonomyDirectoryName");
    Field stringDirectoriesField = Searcher.class.getDeclaredField("stringDirectories");
    Field initializedField = Searcher.class.getDeclaredField("initialized");
    Field searchField = Searcher.class.getDeclaredField("search");
    Field indexReaderField = Searcher.class.getDeclaredField("indexReader");
    Field indexSearcherField = Searcher.class.getDeclaredField("indexSearcher");
    Field taxonomyReaderField = Searcher.class.getDeclaredField("taxonomyReader");

    indexDirectoryField.setAccessible(true);
    taxonomyDirectoryField.setAccessible(true);
    indexDirectoryNameField.setAccessible(true);
    taxonomyDirectoryNameField.setAccessible(true);
    stringDirectoriesField.setAccessible(true);
    initializedField.setAccessible(true);
    searchField.setAccessible(true);
    indexReaderField.setAccessible(true);
    indexSearcherField.setAccessible(true);
    taxonomyReaderField.setAccessible(true);

    // Setup
    Directory indexDirectoryExpected = new RAMDirectory();
    Directory taxonomyDirectoryExpected = new RAMDirectory();

    IndexWriterConfig iwc = new IndexWriterConfig(Lucene.LUCENE_VERSION, Lucene.getPerFieldAnalyzer());
    IndexWriter iw = new IndexWriter(indexDirectoryExpected, iwc);
    TaxonomyWriter tw = new DirectoryTaxonomyWriter(taxonomyDirectoryExpected, OpenMode.CREATE);

    iw.commit();
    tw.commit();

    Searcher target = new Searcher(indexDirectoryExpected, taxonomyDirectoryExpected);
    target.initializeSearch();

    // Gather field values.
    Directory indexDirectoryActual = (Directory) indexDirectoryField.get(target);
    Directory taxonomyDirectoryActual = (Directory) taxonomyDirectoryField.get(target);
    String indexDirectoryNameActual = (String) indexDirectoryNameField.get(target);
    String taxonomyDirectoryNameActual = (String) taxonomyDirectoryNameField.get(target);
    boolean stringDirectoriesActual = stringDirectoriesField.getBoolean(target);
    boolean initializedActual = initializedField.getBoolean(target);
    Search searchFieldActual = (Search) searchField.get(target);
    IndexReader indexReaderActual = (IndexReader) indexReaderField.get(target);
    IndexSearcher indexSearcherActual = (IndexSearcher) indexSearcherField.get(target);
    TaxonomyReader taxonomyReaderActual = (TaxonomyReader) taxonomyReaderField.get(target);

    // Test
    assertEquals(true, initializedActual);
    assertNotNull(indexReaderActual);
    assertNotNull(indexSearcherActual);
    assertNotNull(taxonomyReaderActual);

    // Finish
    tw.close();
    iw.close();
}

From source file:com.fuerve.villageelder.search.SearchQueryParserTest.java

License:Apache License

private IndexReader buildDummyIndex() throws IOException {
    RAMDirectory indexDirectory = new RAMDirectory();

    IndexWriterConfig iwc = new IndexWriterConfig(Lucene.LUCENE_VERSION, Lucene.getPerFieldAnalyzer());
    iwc.setOpenMode(OpenMode.CREATE);//w w  w . j ava2s  .  c o m
    IndexWriter iw = new IndexWriter(indexDirectory, iwc);

    Document doc = new Document();
    doc.add(new StringField("Author", "foo", Field.Store.YES));
    doc.add(new LongField("RevisionNumber", 50L, Field.Store.YES));
    doc.add(new StringField("Revision", "50", Field.Store.YES));
    doc.add(new TextField("Message", "stuff", Field.Store.YES));
    iw.addDocument(doc);

    doc = new Document();
    doc.add(new StringField("Author", "bar", Field.Store.YES));
    doc.add(new LongField("RevisionNumber", 5000L, Field.Store.YES));
    doc.add(new StringField("Revision", "5000", Field.Store.YES));
    doc.add(new TextField("Message", "stuff", Field.Store.YES));
    iw.addDocument(doc);
    iw.commit();
    iw.close();

    DirectoryReader result = DirectoryReader.open(indexDirectory);
    return result;
}

From source file:com.fuerve.villageelder.search.SearchTest.java

License:Apache License

/**
 * Test method for {@link com.fuerve.villageelder.search.Search#getFacetsCollector(org.apache.lucene.index.DirectoryReader, org.apache.lucene.facet.taxonomy.TaxonomyReader)}.
 *///  w  w w .j  av  a  2 s.c  o  m
@Test
@SuppressWarnings({ "unchecked", "unused" })
public final void testGetFacetsCollector() throws Exception {
    // Constants
    Field defaultSortField = Search.class.getDeclaredField("DEFAULT_SORT");
    Field defaultFacetsField = Search.class.getDeclaredField("DEFAULT_FACETS");
    Field defaultFacetStringsField = Search.class.getDeclaredField("DEFAULT_FACET_STRINGS");
    Field defaultAnalyzerField = Search.class.getDeclaredField("DEFAULT_ANALYZER");
    Field defaultHitsField = Search.class.getDeclaredField("DEFAULT_HITS");

    defaultSortField.setAccessible(true);
    defaultFacetsField.setAccessible(true);
    defaultFacetStringsField.setAccessible(true);
    defaultAnalyzerField.setAccessible(true);
    defaultHitsField.setAccessible(true);

    final Sort defaultSort = (Sort) defaultSortField.get(null);
    final List<FacetRequest> defaultFacets = (List<FacetRequest>) defaultFacetsField.get(null);
    final Map<String, Integer> defaultFacetStrings = (Map<String, Integer>) defaultFacetStringsField.get(null);
    final Analyzer defaultAnalyzer = (Analyzer) defaultAnalyzerField.get(null);
    final int defaultHits = defaultHitsField.getInt(null);

    // Private members
    Field queryField = Search.class.getDeclaredField("query");
    Field sortField = Search.class.getDeclaredField("sort");
    Field facetsField = Search.class.getDeclaredField("facets");

    queryField.setAccessible(true);
    sortField.setAccessible(true);
    facetsField.setAccessible(true);

    // Test setup
    QueryParser parser = getQueryParser();
    Query queryExpected = parser.parse("test:foo");
    List<FacetRequest> facetsExpected = new ArrayList<FacetRequest>();
    Sort sortExpected = Sort.RELEVANCE;

    Search target = new Search(queryExpected, facetsExpected, sortExpected);
    target.addFacet("test", 100);

    // Gather fields
    Query queryActual = (Query) queryField.get(target);
    Sort sortActual = (Sort) sortField.get(target);
    List<FacetRequest> facetsActual = (List<FacetRequest>) facetsField.get(target);

    // Set up some dummy indices.
    Directory indexDirectory = new RAMDirectory();
    IndexWriterConfig iwc = new IndexWriterConfig(Lucene.LUCENE_VERSION, Lucene.getPerFieldAnalyzer());
    IndexWriter iw = new IndexWriter(indexDirectory, iwc);
    Directory taxonomyDirectory = new RAMDirectory();
    TaxonomyWriter tw = new DirectoryTaxonomyWriter(taxonomyDirectory, OpenMode.CREATE);

    iw.commit();
    tw.commit();

    // Test
    FacetsCollector actual = target.getFacetsCollector(DirectoryReader.open(indexDirectory),
            new DirectoryTaxonomyReader(taxonomyDirectory));

    assertEquals("DocsOnlyCollector", actual.getClass().getSimpleName());
    iw.close();
    tw.close();
    taxonomyDirectory.close();
}

From source file:com.gauronit.tagmata.core.Indexer.java

License:Open Source License

public String createIndex(String indexDisplayName) {
    try {/*  w  w w . j  a v a 2  s . c o  m*/
        UUID uuid = UUID.randomUUID();
        String indexName = uuid.toString().substring(uuid.toString().length() - 8, uuid.toString().length());
        IndexWriter iw = new IndexWriter(FSDirectory.open(new File(indexDir + File.separator + indexName)),
                new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));
        iw.prepareCommit();
        iw.commit();
        iw.close();
        iw = null;

        Document doc = new Document();
        doc.add(new Field("displayName", indexDisplayName, Store.YES, Index.NOT_ANALYZED));
        doc.add(new Field("indexName", indexName, Store.YES, Index.NOT_ANALYZED));

        IndexWriter mainIndexWriter = new IndexWriter(
                FSDirectory.open(new File(indexDir + File.separator + MAIN_INDEX)),
                new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));
        mainIndexWriter.addDocument(doc);
        mainIndexWriter.commit();
        mainIndexWriter.close();
        mainIndexWriter = null;
        return indexName;
    } catch (IOException ex) {
        Logger.getLogger(Indexer.class.getName()).log(Level.SEVERE, null, ex);
        return null;
    }
}

From source file:com.gauronit.tagmata.core.Indexer.java

License:Open Source License

public void deleteIndex(String indexName) {
    try {/*from   ww w. j a  v a2s .  c  o  m*/
        IndexWriter mainIndexWriter = new IndexWriter(
                FSDirectory.open(new File(indexDir + File.separator + MAIN_INDEX)),
                new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));
        Query q = new QueryParser(Version.LUCENE_35, "indexName", new StandardAnalyzer(Version.LUCENE_35))
                .parse(indexName);
        mainIndexWriter.deleteDocuments(q);
        mainIndexWriter.commit();
        mainIndexWriter.close();
        mainIndexWriter = null;

        IndexWriter writer = new IndexWriter(FSDirectory.open(new File(indexDir + File.separator + indexName)),
                new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));
        writer.deleteAll();
        writer.prepareCommit();
        writer.commit();
        writer.close();
        writer = null;

        IOUtil.deleteDir(new File(indexDir + File.separator + indexName));
    } catch (Exception ex) {
        ex.printStackTrace();
    } finally {
    }
}

From source file:com.gauronit.tagmata.core.Indexer.java

License:Open Source License

public void renameIndex(String indexName, String indexDisplayName) {
    try {/*from  w  ww.jav  a  2 s  .  c o m*/
        IndexWriter mainIndexWriter = new IndexWriter(
                FSDirectory.open(new File(indexDir + File.separator + MAIN_INDEX)),
                new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));
        Document doc = new Document();
        doc.add(new Field("displayName", indexDisplayName, Store.YES, Index.NOT_ANALYZED));
        doc.add(new Field("indexName", indexName, Store.YES, Index.NOT_ANALYZED));

        mainIndexWriter.updateDocument(new Term("indexName", indexName), doc,
                new StandardAnalyzer(Version.LUCENE_35));
        mainIndexWriter.prepareCommit();
        mainIndexWriter.commit();

        mainIndexWriter.close();
        mainIndexWriter = null;
    } catch (Exception ex) {
        ex.printStackTrace();
    }

}

From source file:com.gauronit.tagmata.core.Indexer.java

License:Open Source License

public void deleteCards(ArrayList<CardSnapshot> cardSnaps) {
    try {//  w  ww  .jav a  2  s. c om
        for (CardSnapshot cardSnap : cardSnaps) {
            IndexWriter writer = new IndexWriter(
                    FSDirectory.open(new File(indexDir + File.separator + cardSnap.getIndexName())),
                    new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));
            writer.deleteDocuments(new Term("id", cardSnap.getId()));
            writer.prepareCommit();
            writer.commit();
            writer.close();
            writer = null;
        }
    } catch (Exception ex) {
    }
}

From source file:com.gauronit.tagmata.core.Indexer.java

License:Open Source License

public void saveCard(String title, String tags, String text, String indexName) {
    try {//from   w w  w  .  ja va 2 s .  c  o m
        IndexWriter writer = new IndexWriter(FSDirectory.open(new File(indexDir + File.separator + indexName)),
                new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));

        Document doc = new Document();
        doc.add(new Field("title", title, Store.YES, Index.ANALYZED));
        doc.add(new Field("tags", tags, Store.YES, Index.ANALYZED));
        doc.add(new Field("text", text, Store.YES, Index.ANALYZED));
        doc.add(new Field("analyzedText", text, Store.YES, Index.ANALYZED));
        doc.add(new Field("indexName", indexName, Store.YES, Index.ANALYZED));
        doc.add(new Field("id", UUID.randomUUID().toString(), Store.YES, Index.NOT_ANALYZED));
        writer.addDocument(doc, new StandardAnalyzer(Version.LUCENE_35));
        writer.prepareCommit();
        writer.commit();
        writer.close();
        writer = null;
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

From source file:com.gauronit.tagmata.core.Indexer.java

License:Open Source License

public void saveBookmark(String id, String indexName) {
    try {//from   w w  w.  jav  a 2 s  . co m
        IndexWriter mainIndexWriter = new IndexWriter(
                FSDirectory.open(new File(indexDir + File.separator + MAIN_INDEX)),
                new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));

        Document doc = new Document();
        doc.add(new Field("qcId", id, Store.YES, Index.NOT_ANALYZED));
        doc.add(new Field("qcIndexName", indexName, Store.YES, Index.NOT_ANALYZED));

        mainIndexWriter.updateDocument(new Term("id", id), doc);
        mainIndexWriter.prepareCommit();
        mainIndexWriter.commit();
        mainIndexWriter.close();
        mainIndexWriter = null;
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

From source file:com.gauronit.tagmata.core.Indexer.java

License:Open Source License

public void deleteBookmark(String id, String indexName) {
    try {/*w  ww.j a  va2  s .co  m*/
        IndexWriter mainIndexWriter = new IndexWriter(
                FSDirectory.open(new File(indexDir + File.separator + MAIN_INDEX)),
                new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));
        mainIndexWriter.deleteDocuments(new Term("qcId", id));
        mainIndexWriter.prepareCommit();
        mainIndexWriter.commit();
        mainIndexWriter.close();
        mainIndexWriter = null;
    } catch (Exception ex) {
        ex.printStackTrace();
    }

}