Method: OpenSearch::API::Actions#update

Defined in:
lib/opensearch/api/actions/update.rb

#update(arguments = {}) ⇒ Object

Updates a document with a script or partial document.

*Deprecation notice*: Specifying types in urls has been deprecated Deprecated since version 7.0.0

Parameters:

  • (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :id (String)

    Document ID

  • :index (String)

    The name of the index

  • :wait_for_active_shards (String)

    Sets the number of shard copies that must be active before proceeding with the update operation. Defaults to 1, meaning the primary shard only. Set to all for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)

  • :_source (List)

    True or false to return the _source field or not, or a list of fields to return

  • :_source_excludes (List)

    A list of fields to exclude from the returned _source field

  • :_source_includes (List)

    A list of fields to extract and return from the _source field

  • :lang (String)

    The script language (default: painless)

  • :refresh (String)

    If true then refresh the affected shards to make this operation visible to search, if wait_for then wait for a refresh to make this operation visible to search, if false (the default) then do nothing with refreshes. (options: true, false, wait_for)

  • :retry_on_conflict (Number)

    Specify how many times should the operation be retried when a conflict occurs (default: 0)

  • :routing (String)

    Specific routing value

  • :timeout (Time)

    Explicit operation timeout

  • :if_seq_no (Number)

    only perform the update operation if the last operation that has changed the document has the specified sequence number

  • :if_primary_term (Number)

    only perform the update operation if the last operation that has changed the document has the specified primary term

  • :require_alias (Boolean)

    When true, requires destination is an alias. Default is false

  • :headers (Hash)

    Custom HTTP headers

  • :body (Hash)

    The request definition requires either script or partial doc (Required)

Raises:



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/opensearch/api/actions/update.rb', line 55

def update(arguments = {})
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
  raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]

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

  arguments = arguments.clone

  _id = arguments.delete(:id)

  _index = arguments.delete(:index)

  method = OpenSearch::API::HTTP_POST
  path   = "#{Utils.__listify(_index)}/_update/#{Utils.__listify(_id)}"
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = arguments[:body]
  if Array(arguments[:ignore]).include?(404)
    Utils.__rescue_from_not_found { perform_request(method, path, params, body, headers).body }
  else
    perform_request(method, path, params, body, headers).body
  end
end