package io.searchbox.indices.reindex; import io.searchbox.action.GenericResultAbstractAction; import java.util.HashMap; import java.util.Map; import com.google.common.collect.ImmutableMap; /** * @author fabien baligand */ public class Reindex extends GenericResultAbstractAction { Reindex(Builder builder) { super(builder); Map<String, Object> payload = new HashMap<>(); payload.put("source", builder.source); payload.put("dest", builder.dest); if (builder.conflicts != null) { payload.put("conflicts", builder.conflicts); } if (builder.size != null) { payload.put("size", builder.size); } if (builder.script != null) { payload.put("script", builder.script); } this.payload = ImmutableMap.copyOf(payload); setURI(buildURI()); } @Override protected String buildURI() { return super.buildURI() + "/_reindex"; } @Override public String getRestMethodName() { return "POST"; } public static class Builder extends GenericResultAbstractAction.Builder<Reindex, Builder> { private Object source; private Object dest; private String conflicts; private Long size; private Object script; public Builder(Object source, Object dest) { this.source = source; this.dest = dest; } public Builder conflicts(String conflicts) { this.conflicts = conflicts; return this; } public Builder size(Long size) { this.size = size; return this; } public Builder script(Object script) { this.script = script; return this; } public Builder waitForCompletion(boolean waitForCompletion) { return setParameter("wait_for_completion", waitForCompletion); } public Builder waitForActiveShards(int waitForActiveShards) { return setParameter("wait_for_active_shards", waitForActiveShards); } public Builder timeout(long timeout) { return setParameter("timeout", timeout); } public Builder requestsPerSecond(double requestsPerSecond) { return setParameter("requests_per_second", requestsPerSecond); } public Reindex build() { return new Reindex(this); } } }