[[breaking_50_document_api_changes]]
=== Document API changes

==== `?refresh` no longer supports truthy and falsy values
The `?refresh` request parameter used to accept any value other than `false`,
`0`, `off`, and `no` to mean "make the changes from this request visible for
search immediately." Now it only accepts `?refresh` and `?refresh=true` to
mean that. You can set it to `?refresh=false` and the request will take no
refresh-related action. The same is true if you leave `refresh` off of the
url entirely. If you add `?refresh=wait_for` Elasticsearch will wait for the
changes to become visible before replying to the request but won't take any
immediate refresh related action. See <<docs-refresh>>.

==== Reindex and Update By Query
Before 5.0.0 `_reindex` and `_update_by_query` only retried bulk failures so
they used the following response format:

[source,js]
----------------------
{
   ...
   "retries": 10
   ...
}
----------------------

Where `retries` counts the number of bulk retries. Now they retry on search
failures as well and use this response format:

[source,js]
----------------------
{
   ...
   "retries": {
     "bulk": 10,
     "search": 1
   }
   ...
}
----------------------

Where `bulk` counts the number of bulk retries and `search` counts the number
of search retries.
