[[reference-update_by_query]]

////////
===========================================================================================================================
||                                                                                                                       ||
||                                                                                                                       ||
||                                                                                                                       ||
||        ██████╗ ███████╗ █████╗ ██████╗ ███╗   ███╗███████╗                                                            ||
||        ██╔══██╗██╔════╝██╔══██╗██╔══██╗████╗ ████║██╔════╝                                                            ||
||        ██████╔╝█████╗  ███████║██║  ██║██╔████╔██║█████╗                                                              ||
||        ██╔══██╗██╔══╝  ██╔══██║██║  ██║██║╚██╔╝██║██╔══╝                                                              ||
||        ██║  ██║███████╗██║  ██║██████╔╝██║ ╚═╝ ██║███████╗                                                            ||
||        ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═════╝ ╚═╝     ╚═╝╚══════╝                                                            ||
||                                                                                                                       ||
||                                                                                                                       ||
||    This file is autogenerated, DO NOT send pull requests that changes this file directly.                             ||
||    You should update the script that does the generation, which can be found in:                                      ||
||    https://github.com/elastic/elastic-client-generator-js                                                             ||
||                                                                                                                       ||
||    You can run the script with the following command:                                                                 ||
||       npm run elasticsearch -- --version <version>                                                                    ||
||                                                                                                                       ||
||                                                                                                                       ||
||                                                                                                                       ||
===========================================================================================================================
////////

[discrete]
=== client.updateByQuery

Update documents. Updates documents that match the specified query. If no query is specified, performs an update on every document in the data stream or index without modifying the source, which is useful for picking up mapping changes.

{ref}/docs-update-by-query.html[{es} documentation]

[discrete]
==== Function signature

[source,ts]
----
(UpdateByQueryRequest, options?): Promise<UpdateByQueryResponse>
----

[discrete]
===== `UpdateByQueryRequest`

[source,ts]
----
interface UpdateByQueryRequest extends <<shared-type-request-base, RequestBase>> {
  index: <<shared-type-indices, Indices>>
  allow_no_indices?: boolean
  analyzer?: string
  analyze_wildcard?: boolean
  default_operator?: QueryDslOperator
  df?: string
  expand_wildcards?: <<shared-type-expand-wildcards, ExpandWildcards>>
  from?: <<shared-type-long, long>>
  ignore_unavailable?: boolean
  lenient?: boolean
  pipeline?: string
  preference?: string
  q?: string
  refresh?: boolean
  request_cache?: boolean
  requests_per_second?: <<shared-type-float, float>>
  routing?: <<shared-type-routing, Routing>>
  scroll?: <<shared-type-duration, Duration>>
  scroll_size?: <<shared-type-long, long>>
  search_timeout?: <<shared-type-duration, Duration>>
  search_type?: <<shared-type-search-type, SearchType>>
  slices?: <<shared-type-slices, Slices>>
  sort?: string[]
  stats?: string[]
  terminate_after?: <<shared-type-long, long>>
  timeout?: <<shared-type-duration, Duration>>
  version?: boolean
  version_type?: boolean
  wait_for_active_shards?: <<shared-type-wait-for-active-shards, WaitForActiveShards>>
  wait_for_completion?: boolean
  max_docs?: <<shared-type-long, long>>
  query?: QueryDslQueryContainer
  script?: <<shared-type-script, Script>> | string
  slice?: <<shared-type-sliced-scroll, SlicedScroll>>
  conflicts?: <<shared-type-conflicts, Conflicts>>
}
----

[discrete]
===== `UpdateByQueryResponse`

[source,ts]
----
interface UpdateByQueryResponse {
  batches?: <<shared-type-long, long>>
  failures?: <<shared-type-bulk-index-by-scroll-failure, BulkIndexByScrollFailure>>[]
  noops?: <<shared-type-long, long>>
  deleted?: <<shared-type-long, long>>
  requests_per_second?: <<shared-type-float, float>>
  retries?: <<shared-type-retries, Retries>>
  task?: <<shared-type-task-id, TaskId>>
  timed_out?: boolean
  took?: <<shared-type-duration-value, DurationValue>><<<shared-type-unit-millis, UnitMillis>>>
  total?: <<shared-type-long, long>>
  updated?: <<shared-type-long, long>>
  version_conflicts?: <<shared-type-long, long>>
  throttled?: <<shared-type-duration, Duration>>
  throttled_millis?: <<shared-type-duration-value, DurationValue>><<<shared-type-unit-millis, UnitMillis>>>
  throttled_until?: <<shared-type-duration, Duration>>
  throttled_until_millis?: <<shared-type-duration-value, DurationValue>><<<shared-type-unit-millis, UnitMillis>>>
}
----

