package io.searchbox.core;
import io.searchbox.action.AbstractMultiTypeActionBuilder;
import io.searchbox.action.GenericResultAbstractAction;
/**
* Delete By Query API is removed in Elasticsearch version 2.0.
* You need to install the plugin with the same name for this action to work.
*
* @author Dogukan Sonmez
* @author cihat keser
* @see <a href="https://www.elastic.co/blog/core-delete-by-query-is-a-plugin">Delete By Query is now a plugin</a>
*/
public class DeleteByQuery extends GenericResultAbstractAction {
protected DeleteByQuery(Builder builder) {
super(builder);
this.payload = builder.query;
setURI(buildURI());
}
@Override
protected String buildURI() {
return super.buildURI() + "/_delete_by_query";
}
@Override
public String getPathToResult() {
return "ok";
}
@Override
public String getRestMethodName() {
return "POST";
}
public static class Builder extends AbstractMultiTypeActionBuilder<DeleteByQuery, Builder> {
private String query;
public Builder(String query) {
this.query = query;
}
@Override
public DeleteByQuery build() {
return new DeleteByQuery(this);
}
}
}