@Override public void handleRequest( final RestRequest request, final RestChannel channel, final NodeClient client) { DeleteRequest deleteRequest = new DeleteRequest(request.param("index"), request.param("type"), request.param("id")); deleteRequest.routing(request.param("routing")); deleteRequest.parent( request.param( "parent")); // order is important, set it after routing, so it will set the routing deleteRequest.timeout(request.paramAsTime("timeout", DeleteRequest.DEFAULT_TIMEOUT)); deleteRequest.setRefreshPolicy(request.param("refresh")); deleteRequest.version(RestActions.parseVersion(request)); deleteRequest.versionType( VersionType.fromString(request.param("version_type"), deleteRequest.versionType())); String consistencyLevel = request.param("consistency"); if (consistencyLevel != null) { deleteRequest.consistencyLevel(WriteConsistencyLevel.fromString(consistencyLevel)); } client.delete(deleteRequest, new RestStatusToXContentListener<>(channel)); }