Method: Elasticsearch::API::Actions#update_by_query_rethrottle

Defined in:
lib/elasticsearch/api/actions/update_by_query_rethrottle.rb

#update_by_query_rethrottle(arguments = {}) ⇒ Object

Throttle an update by query operation. Change the number of requests per second for a particular update by query operation. Rethrottling that speeds up the query takes effect immediately but rethrotting that slows down the query takes effect after completing the current batch to prevent scroll timeouts.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :task_id (String)

    The ID for the task. (Required)

  • :requests_per_second (Float)

    The throttle for this request in sub-requests per second. To turn off throttling, set it to -1. (Required)

  • :error_trace (Boolean)

    When set to true Elasticsearch will include the full stack trace of errors when they occur.

  • :filter_path (String, Array<String>)

    Comma-separated list of filters in dot notation which reduce the response returned by Elasticsearch.

  • :human (Boolean)

    When set to true will return statistics in a format suitable for humans. For example ‘“exists_time”: “1h”` for humans and `“exists_time_in_millis”: 3600000` for computers. When disabled the human readable values will be omitted. This makes sense for responses being consumed only by machines.

  • :pretty (Boolean)

    If set to true the returned JSON will be “pretty-formatted”. Only use this option for debugging only.

  • :headers (Hash)

    Custom HTTP headers

Raises:

  • (ArgumentError)

See Also:



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/elasticsearch/api/actions/update_by_query_rethrottle.rb', line 46

def update_by_query_rethrottle(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'update_by_query_rethrottle' }

  defined_params = [:task_id].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  raise ArgumentError, "Required argument 'task_id' missing" unless arguments[:task_id]

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _task_id = arguments.delete(:task_id)

  method = Elasticsearch::API::HTTP_POST
  path   = "_update_by_query/#{Utils.listify(_task_id)}/_rethrottle"
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end