package com.senseidb.clue.commands; import java.io.PrintStream; import org.apache.lucene.index.IndexWriter; import com.senseidb.clue.ClueContext; public class MergeCommand extends ClueCommand { public MergeCommand(ClueContext ctx) { super(ctx); } @Override public String getName() { return "merge"; } @Override public String help() { return "force merges segments into given N segments, input: number of max segments"; } @Override public void execute(String[] args, PrintStream out) throws Exception { int count; try{ count = Integer.parseInt(args[0]); } catch(Exception e){ out.println("default target segment count = 1"); count = 1; } IndexWriter writer = ctx.getIndexWriter(); if (writer != null) { writer.forceMerge(count, true); writer.commit(); ctx.refreshReader(); } else { out.println("unable to open index writer, index is in readonly mode"); } } }