Example usage for org.apache.lucene.index TieredMergePolicy setMaxMergeAtOnce

List of usage examples for org.apache.lucene.index TieredMergePolicy setMaxMergeAtOnce

Introduction

In this page you can find the example usage for org.apache.lucene.index TieredMergePolicy setMaxMergeAtOnce.

Prototype

public TieredMergePolicy setMaxMergeAtOnce(int v) 

Source Link

Document

Maximum number of segments to be merged at a time during "normal" merging.

Usage

From source file:com.xiaomi.linden.lucene.merge.TieredMergePolicyFactory.java

License:Apache License

@Override
public MergePolicy getInstance(Map<String, String> config) throws IOException {
    TieredMergePolicy mergePolicy = new TieredMergePolicy();

    if (config.containsKey(SEGMENTS_PER_TIER)) {
        mergePolicy.setSegmentsPerTier(Double.valueOf(config.get(SEGMENTS_PER_TIER)));
    }//  w w w . j  a v  a  2 s.  c o m
    if (config.containsKey(MAX_MERGE_AT_ONCE)) {
        mergePolicy.setMaxMergeAtOnce(Integer.valueOf(config.get(MAX_MERGE_AT_ONCE)));
    }
    return mergePolicy;
}

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  w w  w .j  ava2  s  .co m
 * @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;
}