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

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

Introduction

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

Prototype

public TieredMergePolicy setSegmentsPerTier(double v) 

Source Link

Document

Sets the allowed number of segments per tier.

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  ww  . j  ava2s .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// w  w  w. ja v  a2s.c  o  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;
}

From source file:uk.co.flax.luwak.Monitor.java

License:Apache License

static IndexWriter defaultIndexWriter(Directory directory) throws IOException {

    IndexWriterConfig iwc = new IndexWriterConfig(new KeywordAnalyzer());
    TieredMergePolicy mergePolicy = new TieredMergePolicy();
    mergePolicy.setSegmentsPerTier(4);
    iwc.setMergePolicy(mergePolicy);/*from  ww w  .java 2  s  .  c  o m*/
    iwc.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);

    return new IndexWriter(directory, iwc);

}