Example usage for org.apache.lucene.index LogMergePolicy setMaxMergeDocs

List of usage examples for org.apache.lucene.index LogMergePolicy setMaxMergeDocs

Introduction

In this page you can find the example usage for org.apache.lucene.index LogMergePolicy setMaxMergeDocs.

Prototype

public void setMaxMergeDocs(int maxMergeDocs) 

Source Link

Document

Determines the largest segment (measured by document count) that may be merged with other segments.

Usage

From source file:com.edgenius.wiki.search.lucene.SimpleIndexFactory.java

License:Open Source License

private IndexWriterConfig getIndexWriterConfig() {
    IndexWriterConfig conf = new IndexWriterConfig(LuceneConfig.VERSION, analyzerProvider.getIndexAnalyzer());
    conf.setMaxBufferedDocs(maxBufferedDocs);
    conf.setTermIndexInterval(termIndexInterval);
    conf.setWriteLockTimeout(writeLockTimeout);

    LogMergePolicy mergePolicy = new LogDocMergePolicy();
    mergePolicy.setUseCompoundFile(useCompoundFile);
    mergePolicy.setMaxMergeDocs(maxMergeDocs);
    mergePolicy.setMergeFactor(mergeFactor);
    conf.setMergePolicy(mergePolicy);/*from   w  ww.  j ava2 s .c  o  m*/

    return conf;
}

From source file:net.ion.craken.node.problem.distribute.LuceneSettings.java

License:Open Source License

public static IndexWriter openWriter(Directory directory, int maxMergeDocs, boolean useSerialMerger)
        throws CorruptIndexException, LockObtainFailedException, IOException {
    IndexWriterConfig indexWriterConfig = new IndexWriterConfig(LUCENE_VERSION, analyzer);
    if (useSerialMerger) {
        indexWriterConfig.setMergeScheduler(mergeScheduler);
    }//from w ww.ja  va2 s.  c o m
    LogMergePolicy mergePolicy = new LogByteSizeMergePolicy();
    mergePolicy.setMaxMergeDocs(maxMergeDocs);
    indexWriterConfig.setMergePolicy(mergePolicy);
    return new IndexWriter(directory, indexWriterConfig);
}

From source file:org.apache.solr.update.SolrIndexConfig.java

License:Apache License

/**
 * Builds a MergePolicy, may also modify the value returned by
 * getUseCompoundFile() for use by the IndexWriterConfig if 
 * "useCompoundFile" is specified as an init arg for 
 * an out of the box MergePolicy that no longer supports it
 *
 * @see #fixUseCFMergePolicyInitArg//from www .j a  va2s.c  om
 * @see #getUseCompoundFile
 */
private MergePolicy buildMergePolicy(IndexSchema schema) {
    String mpClassName = mergePolicyInfo == null ? defaultMergePolicyClassName : mergePolicyInfo.className;

    MergePolicy policy = schema.getResourceLoader().newInstance(mpClassName, MergePolicy.class);

    if (policy instanceof LogMergePolicy) {
        LogMergePolicy logMergePolicy = (LogMergePolicy) policy;
        fixUseCFMergePolicyInitArg(LogMergePolicy.class);

        if (maxMergeDocs != -1)
            logMergePolicy.setMaxMergeDocs(maxMergeDocs);

        logMergePolicy.setNoCFSRatio(getUseCompoundFile() ? 1.0 : 0.0);

        if (mergeFactor != -1)
            logMergePolicy.setMergeFactor(mergeFactor);

    } else if (policy instanceof TieredMergePolicy) {
        TieredMergePolicy tieredMergePolicy = (TieredMergePolicy) policy;
        fixUseCFMergePolicyInitArg(TieredMergePolicy.class);

        tieredMergePolicy.setNoCFSRatio(getUseCompoundFile() ? 1.0 : 0.0);

        if (mergeFactor != -1) {
            tieredMergePolicy.setMaxMergeAtOnce(mergeFactor);
            tieredMergePolicy.setSegmentsPerTier(mergeFactor);
        }

    } else if (mergeFactor != -1) {
        log.warn(
                "Use of <mergeFactor> cannot be configured if merge policy is not an instance of LogMergePolicy or TieredMergePolicy. The configured policy's defaults will be used.");
    }

    if (mergePolicyInfo != null)
        SolrPluginUtils.invokeSetters(policy, mergePolicyInfo.initArgs);

    return policy;
}

From source file:org.opencms.search.CmsSearchIndex.java

License:Open Source License

/**
 * Creates a new index writer.<p>/*from   w w  w  .  j  av a 2  s. c  o  m*/
 * 
 * @param create if <code>true</code> a whole new index is created, if <code>false</code> an existing index is updated
 * 
 * @return the created new index writer
 * 
 * @throws CmsIndexException in case the writer could not be created
 * 
 * @see #getIndexWriter(I_CmsReport, boolean)
 */
protected I_CmsIndexWriter indexWriterCreate(boolean create) throws CmsIndexException {

    IndexWriter indexWriter;
    try {
        // check if the target directory already exists
        File f = new File(m_path);
        if (!f.exists()) {
            // index does not exist yet
            f = f.getParentFile();
            if ((f != null) && !f.exists()) {
                // create the parent folders if required
                f.mkdirs();
            }
            // create must be true if the directory does not exist
            create = true;
        }

        // open file directory for Lucene
        FSDirectory dir = FSDirectory.open(new File(m_path));
        // create Lucene merge policy
        LogMergePolicy mergePolicy = new LogByteSizeMergePolicy();
        if (m_luceneMaxMergeDocs != null) {
            mergePolicy.setMaxMergeDocs(m_luceneMaxMergeDocs.intValue());
        }
        if (m_luceneMergeFactor != null) {
            mergePolicy.setMergeFactor(m_luceneMergeFactor.intValue());
        }
        if (m_luceneUseCompoundFile != null) {
            mergePolicy.setUseCompoundFile(m_luceneUseCompoundFile.booleanValue());
        }
        // create a new Lucene index configuration
        IndexWriterConfig indexConfig = new IndexWriterConfig(LUCENE_VERSION, getAnalyzer());
        // set the index configuration parameters if required 
        if (m_luceneRAMBufferSizeMB != null) {
            indexConfig.setRAMBufferSizeMB(m_luceneRAMBufferSizeMB.doubleValue());
        }
        if (create) {
            indexConfig.setOpenMode(OpenMode.CREATE);
        } else {
            indexConfig.setOpenMode(OpenMode.CREATE_OR_APPEND);
        }
        // create the index
        indexWriter = new IndexWriter(dir, indexConfig);
    } catch (Exception e) {
        throw new CmsIndexException(
                Messages.get().container(Messages.ERR_IO_INDEX_WRITER_OPEN_2, m_path, m_name), e);
    }
    return new CmsLuceneIndexWriter(indexWriter, this);
}

From source file:psidev.psi.mi.search.index.PsimiIndexWriter.java

License:Apache License

public void index(Directory directory, InputStream is, boolean createIndex, boolean hasHeaderLine)
        throws IOException, ConverterException, MitabLineException {
    IndexWriterConfig writerConfig = new IndexWriterConfig(Version.LUCENE_30,
            new StandardAnalyzer(Version.LUCENE_30));
    LogMergePolicy policy = new LogDocMergePolicy();
    policy.setMergeFactor(MERGE_FACTOR);
    policy.setMaxMergeDocs(Integer.MAX_VALUE);
    writerConfig.setMergePolicy(policy);

    IndexWriter indexWriter = new IndexWriter(directory, writerConfig);

    if (createIndex) {
        indexWriter.commit();/*from w w w.  j  av a 2 s  . c o m*/
        indexWriter.deleteAll();
        indexWriter.commit();
    }

    index(indexWriter, is, hasHeaderLine);
    indexWriter.close();
}