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

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

Introduction

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

Prototype

public long addIndexes(CodecReader... readers) throws IOException 

Source Link

Document

Merges the provided indexes into this index.

Usage

From source file:org.ms123.common.data.lucene.LuceneServiceImpl.java

License:Open Source License

public synchronized void commit(LuceneSession session) {
    IndexWriter tiw = session.getIndexWriter();
    String namespace = session.getStoreDesc().getNamespace();
    try {/*from  ww  w.  ja va  2s  .  c  o m*/
        IndexReader ir = IndexReader.open(tiw, true);
        IndexWriter riw = getRealIndexWriter(namespace);
        deleteExistingDocs(session, riw);
        riw.addIndexes(ir);
        riw.maybeMerge();
        riw.commit();
        tiw.getDirectory().close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:org.punksearch.crawler.IndexOperator.java

License:Open Source License

public static void merge(String targetDir, Set<String> sourceDirs) {
    try {//w w w  .  j  a  v a  2s. co m
        IndexWriter iw = createIndexWriter(targetDir);
        Directory[] dirs = new Directory[sourceDirs.size()];
        int i = 0;
        for (String source : sourceDirs) {
            dirs[i] = LuceneUtils.dir(source);
            i++;
        }
        iw.addIndexes(dirs);
        iw.commit();
        iw.close();
    } catch (IOException ex) {
        log.error("Exception during merging index directories", ex);
        throw new RuntimeException(ex);
    }
}

From source file:org.riotfamily.search.index.Indexer.java

License:Apache License

public void crawlerFinished() {
    try {/*from  ww  w .j  a v  a 2 s  .  co  m*/
        tempWriter.close();
        IndexWriter indexWriter = new IndexWriter(indexDir, null, true);
        indexWriter.addIndexes(new Directory[] { tempIndexDir });
        indexWriter.close();
    } catch (IOException e) {
        log.error("Error", e);
    }
    tempWriter = null;
}

From source file:org.springmodules.lucene.index.core.DefaultLuceneIndexTemplate.java

License:Apache License

public void addIndexes(Directory[] directories) {
    IndexWriter writer = IndexWriterFactoryUtils.getIndexWriter(indexFactory);
    try {/*from   w  w  w  .  ja va2 s  . c  om*/
        writer.addIndexes(directories);
    } catch (IOException ex) {
        throw new LuceneIndexAccessException("Error during adding indexes.", ex);
    } finally {
        IndexWriterFactoryUtils.releaseIndexWriter(indexFactory, writer);
    }
}

From source file:org.talend.dataquality.semantic.api.DictionaryUtils.java

License:Open Source License

static void rewriteIndex(Directory srcDir, File destFolder) throws IOException {
    final FSDirectory destDir = FSDirectory.open(destFolder);
    final IndexWriterConfig iwc = new IndexWriterConfig(Version.LATEST,
            new StandardAnalyzer(CharArraySet.EMPTY_SET));
    final IndexWriter writer = new IndexWriter(destDir, iwc);

    writer.addIndexes(srcDir);
    writer.commit();/*  www  .  ja  v  a  2 s .c  om*/
    writer.close();
    destDir.close();
}

From source file:org.wikimedia.revdiffsearch.IndexMerger.java

License:Open Source License

/** Index all text files under a directory. */
public static void main(String[] args) {

    if (args.length != 2) {
        System.out.println("Usage: java -jar IndexMerger.jar "
                + "merged_index_dir existing_index_dir1 existing_index_dir2 ...");
        System.out.println(" merged_index_dir: A directory where the merged " + "index will be stored");
        System.out.println("   e.g. merged_indexes");
        System.out/* ww w.  j  a va2 s . c om*/
                .println(" existing_indexes_dir: A directory where the " + "indexes that have to merged exist");
        System.out.println("   e.g. indexes/");
        System.out.println("   e.g.         index1");
        System.out.println("   e.g.         index2");
        System.out.println("   e.g.         index3");
        System.exit(1);
    }

    int ramBufferSizeMB = 1024;
    int ngram = 3;
    File INDEX_DIR = new File(args[0]);
    {
        String s;
        if ((s = System.getProperty("ngram")) != null) {
            ngram = Integer.parseInt(s);
        }
        if ((s = System.getProperty("ramBufferSize")) != null) {
            ramBufferSizeMB = Integer.parseInt(s);
        }
    }

    INDEX_DIR.mkdir();

    Date start = new Date();

    try {
        IndexWriterConfig cfg = new IndexWriterConfig(Version.LUCENE_44, new SimpleNGramAnalyzer(ngram));
        LogDocMergePolicy lmp = new LogDocMergePolicy();
        lmp.setMergeFactor(1000);
        cfg.setRAMBufferSizeMB(ramBufferSizeMB);
        cfg.setMergePolicy(lmp);

        IndexWriter writer = new IndexWriter(FSDirectory.open(INDEX_DIR), cfg);

        // IndexWriter writer = new IndexWriter(INDEX_DIR,
        // new StandardAnalyzer(Version.LUCENE_44),
        // true);
        // writer.setMergeFactor(1000);
        // writer.setRAMBufferSizeMB(50);

        List<Directory> indexes = new ArrayList<Directory>();

        for (String indexdir : Arrays.asList(args).subList(1, args.length)) {
            System.out.println("Adding: " + indexdir);
            indexes.add(FSDirectory.open(new File(indexdir)));
        }

        System.out.print("Merging added indexes...");
        writer.addIndexes(indexes.toArray(new Directory[indexes.size()]));
        System.out.println("done");

        writer.close();
        System.out.println("done");

        Date end = new Date();
        System.out.println("It took: " + ((end.getTime() - start.getTime()) / 1000) + "\"");

    } catch (IOException e) {
        e.printStackTrace();
    }
}

From source file:proj.zoie.impl.indexing.internal.BaseSearchIndex.java

License:Apache License

public void loadFromIndex(BaseSearchIndex<R> index) throws IOException {
    // hao: open readOnly ram index reader
    ZoieIndexReader<R> reader = index.openIndexReader();
    if (reader == null)
        return;//ww  w .  j ava 2 s  .  c o  m

    Directory dir = reader.directory();

    // hao: delete docs in disk index
    LongSet delDocs = _delDocs;
    clearDeletes();
    deleteDocs(delDocs);

    // hao: merge the readOnly ram index with the disk index
    IndexWriter writer = null;
    try {
        writer = openIndexWriter(null, null);
        writer.addIndexes(new Directory[] { dir });
        writer.maybeMerge();
    } finally {
        closeIndexWriter();
    }
}

From source file:spell.SpellIndex.java

License:Apache License

/**
 * Index a Dictionary from either a file or another Lucene index.
 * @param dict the dictionary to index//w ww  .  j a v a  2 s.c om
 * @throws IOException
 */
public void indexDictionary(Dictionary dict) throws IOException {
    RAMDirectory ramdir = new RAMDirectory();
    IndexWriter ramwriter = new IndexWriter(ramdir, s_analyzer, true);
    ramwriter.mergeFactor = 10000;

    Iterator iter = dict.getWordsIterator();
    while (iter.hasNext()) {
        String word = (String) iter.next();

        // Don't add existing words
        if (this.exist(word)) {
            // if the word already exist in the gramindex
            continue;
        }

        // add the word and index it if it's long enough
        Document doc = createDocument(word);
        ramwriter.addDocument(doc);
    }

    ramwriter.optimize();

    IndexReader.unlock(spellindex);

    IndexWriter writer = new IndexWriter(spellindex, s_analyzer, false);

    writer.addIndexes(new Directory[] { ramdir });
    writer.optimize();
    writer.close();

    ramwriter.close();
    ramdir.close();
}