Example usage for org.apache.lucene.index IndexWriterConfig setOpenMode

List of usage examples for org.apache.lucene.index IndexWriterConfig setOpenMode

Introduction

In this page you can find the example usage for org.apache.lucene.index IndexWriterConfig setOpenMode.

Prototype

public IndexWriterConfig setOpenMode(OpenMode openMode) 

Source Link

Document

Specifies OpenMode of the index.

Usage

From source file:org.kew.rmf.core.lucene.LuceneDataLoader.java

License:Open Source License

/**
 * Opens an IndexWriter, reusing or wiping an existing index according to the configuration.
 *///  ww  w.  jav a2s  . c o  m
private IndexWriter openIndex() throws IOException {
    IndexWriterConfig indexWriterConfig = new IndexWriterConfig(getLuceneVersion(), luceneAnalyzer);
    indexWriterConfig.setRAMBufferSizeMB(RAM_BUFFER_SIZE);

    //      if (getConfig().isReuseIndex()) {
    //         // Reuse the index if it exists, otherwise create a new one.
    //         logger.debug("{}: Reusing existing index, if it exists", configName);
    //         indexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
    //      }
    //      else {
    // Create a new index, overwriting any that already exists.
    logger.debug("{}: Overwriting existing index, if it exists", configName);
    indexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE);
    //      }

    IndexWriter indexWriter;

    try {
        indexWriter = new IndexWriter(directory, indexWriterConfig);
    } catch (IOException e) {
        logger.warn("Exception while creating index, removing index directory and retrying", e);
        // Try deleting the index directory.
        File dir = directory.getDirectory();
        if (dir.isDirectory() && dir.listFiles() != null) {
            logger.warn("{}: Wiping existing index directory {}", configName, dir);
            FileUtils.deleteDirectory(dir);
        }
        indexWriter = new IndexWriter(directory, indexWriterConfig);
    }

    return indexWriter;
}

From source file:org.lahab.clucene.server.indexer.Indexer.java

License:Apache License

/**
 * Opens an index writer on the current directory
 * @throws CorruptIndexException//  w  w w. j a v a  2  s. c  o m
 * @throws IOException
 * @throws ParametizerException 
 */
public void open() throws CorruptIndexException, IOException, ParametizerException {
    StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
    IndexWriterConfig configWriter = new IndexWriterConfig(Version.LUCENE_36, analyzer);
    configWriter.setRAMBufferSizeMB(_params.getDouble("bufferSize"));
    configWriter.setMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH);
    configWriter.setOpenMode(IndexWriterConfig.OpenMode.CREATE);

    try {
        _index = new IndexWriter(_directory, configWriter);
        _nbLastCommit = _index.maxDoc();
        _close = false;
    } catch (LockObtainFailedException e) {
        System.out.println("Lock is taken trying again");
        _directory.clearLock("write.lock");
    }
}

From source file:org.languagetool.dev.index.Indexer.java

License:Open Source License

public Indexer(Directory dir, Language language) {
    try {/* ww w.j a v a2 s . co m*/
        final Analyzer analyzer = getAnalyzer(language);
        final IndexWriterConfig writerConfig = getIndexWriterConfig(analyzer);
        writerConfig.setOpenMode(OpenMode.CREATE);
        writer = new IndexWriter(dir, writerConfig);
        sentenceTokenizer = language.getSentenceTokenizer();
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

From source file:org.lukhnos.lucenestudy.Indexer.java

License:MIT License

/**
 * Create or open a document index/*w w w .  ja  va2 s.  c om*/
 *
 * @param indexRoot The parent directory inside which the index lives.
 * @param appendIfExists If true, the index will be opened for appending new documents.
 * @throws IOException
 */
public Indexer(String indexRoot, boolean appendIfExists) throws IOException {
    Path indexRootPath = Paths.get(indexRoot);
    Analyzer analyzer = getAnalyzer();

    Directory mainIndexDir = FSDirectory.open(getMainIndexPath(indexRootPath));
    IndexWriterConfig mainIndexWriterConfig = new IndexWriterConfig(analyzer);

    if (appendIfExists) {
        mainIndexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
    } else {
        mainIndexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE);
    }

    indexWriter = new IndexWriter(mainIndexDir, mainIndexWriterConfig);
}

From source file:org.moxie.proxy.LuceneExecutor.java

License:Apache License

/**
 * Gets an index writer for the repository. The index will be created if it
 * does not already exist or if forceCreate is specified.
 * //from  w  ww.ja v a  2  s  .co m
 * @param repository
 * @return an IndexWriter
 * @throws IOException
 */
private IndexWriter getIndexWriter(String repository) throws IOException {
    IndexWriter indexWriter = writers.get(repository);
    File indexFolder = new File(indexesFolder, repository);
    Directory directory = FSDirectory.open(indexFolder);

    if (indexWriter == null) {
        if (!indexFolder.exists()) {
            indexFolder.mkdirs();
        }
        StandardAnalyzer analyzer = new StandardAnalyzer(LUCENE_VERSION);
        IndexWriterConfig config = new IndexWriterConfig(LUCENE_VERSION, analyzer);
        config.setOpenMode(OpenMode.CREATE_OR_APPEND);
        indexWriter = new IndexWriter(directory, config);
        writers.put(repository, indexWriter);
    }
    return indexWriter;
}

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

License:Open Source License

private IndexWriter createRealIndexWriter(String namespace) {
    try {/* w w  w. j  a v  a 2  s  . c o m*/
        IndexWriterConfig.OpenMode mode = IndexWriterConfig.OpenMode.CREATE;
        File luceneDir = new File(System.getProperty("workspace") + "/lucene", namespace);
        if (!luceneDir.exists()) {
            luceneDir.mkdirs();
        } else {
            mode = IndexWriterConfig.OpenMode.APPEND;
        }
        Directory dir = new SimpleFSDirectory(luceneDir);
        IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_33,
                new StandardAnalyzer(Version.LUCENE_33));
        iwc.setOpenMode(mode);
        IndexWriter iw = new IndexWriter(dir, iwc);
        return iw;
    } catch (Exception e) {
        e.printStackTrace();
        throw new RuntimeException("LuceneServiceImpl.createRealIndexWriter", e);
    }
}

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

License:Open Source License

public IndexWriter createTmpIndexWriter() {
    try {//from w w  w  . j a  v a2 s  .  c o m
        IndexWriterConfig.OpenMode mode = IndexWriterConfig.OpenMode.CREATE;
        Directory dir = new RAMDirectory();
        IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_33,
                new StandardAnalyzer(Version.LUCENE_33));
        iwc.setOpenMode(mode);
        IndexWriter iw = new IndexWriter(dir, iwc);
        return iw;
    } catch (Exception e) {
        e.printStackTrace();
        throw new RuntimeException("LuceneServiceImpl.createTmpIndexWriter", e);
    }
}

From source file:org.niord.core.LuceneTest.java

License:Apache License

@Test
public void testLucene() throws IOException, ParseException {

    // Something seems to have change in Lucene. In earlier versions (e.g. 4.6), you could
    // use the StandardAnalyzer and quoted phrase searches including stop words (e.g. "the")
    // would still work. See example below:
    // However, in the current version of Lucene, I can only get this scenario to work with
    // SimpleAnalyzer for the QueryParser :-(

    Directory directory = new RAMDirectory();
    Analyzer analyzer = new StandardAnalyzer();
    IndexWriterConfig iwc = new IndexWriterConfig(analyzer);
    iwc.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
    IndexWriter writer = new IndexWriter(directory, iwc);

    Document doc = new Document();

    FieldType ft = new FieldType();
    ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
    ft.setTokenized(true);/*from   w ww  .ja v a  2s  .  c  o m*/
    ft.setStoreTermVectors(true);
    ft.setStoreTermVectorPositions(true);
    ft.freeze();

    doc.add(new Field("message", "The quick brown fox jumps over the lazy dog", ft));
    writer.addDocument(doc);
    writer.close();

    IndexReader reader = DirectoryReader.open(directory);
    assertEquals(1, reader.numDocs());

    analyzer = new SimpleAnalyzer();
    QueryParser parser = new ComplexPhraseQueryParser("message", analyzer);
    parser.setDefaultOperator(QueryParser.OR_OPERATOR);
    parser.setAllowLeadingWildcard(true); // NB: Expensive!
    Query query = parser.parse("\"over the lazy\" +quick -goat bro*");

    IndexSearcher searcher = new IndexSearcher(reader);
    TopDocs results = searcher.search(query, 10000);

    assertEquals(1, results.scoreDocs.length);

    reader.close();
}

From source file:org.niord.core.message.MessageLuceneIndex.java

License:Apache License

/**
 * Creates and returns a Lucene writer/*  w  w  w.  j a  va 2  s  .c  om*/
 */
private IndexWriter getNewWriter() throws IOException {

    IndexWriterConfig iwc = new IndexWriterConfig(getAnalyzer());
    // Add new documents to an existing index:
    iwc.setOpenMode(OpenMode.CREATE_OR_APPEND);

    try {
        Directory dir = FSDirectory.open(indexFolder);
        return new IndexWriter(dir, iwc);
    } catch (IOException ex) {
        log.error("Failed to create message Lucene Index in folder " + indexFolder, ex);
        throw ex;
    }
}

From source file:org.nuxeo.ecm.core.storage.sql.db.H2Fulltext.java

License:Apache License

private static IndexWriter getIndexWriter(String name, String path, String analyzer) throws SQLException {
    IndexWriter indexWriter = indexWriters.get(name);
    if (indexWriter != null) {
        return indexWriter;
    }//  ww w .  j a v  a2  s.c o  m
    synchronized (indexWriters) {
        indexWriter = indexWriters.get(name);
        if (indexWriter != null) {
            return indexWriter;
        }
        try {
            Directory dir = path == null ? new RAMDirectory() : FSDirectory.open(Paths.get(path));
            Analyzer an = getAnalyzer(analyzer);
            IndexWriterConfig iwc = new IndexWriterConfig(an);
            iwc.setOpenMode(OpenMode.CREATE_OR_APPEND);
            indexWriter = new IndexWriter(dir, iwc);
        } catch (LockObtainFailedException e) {
            throw convertException("Cannot open fulltext index " + path, e);
        } catch (IOException e) {
            throw convertException(e);
        }
        indexWriters.put(name, indexWriter);
        return indexWriter;
    }
}