[[breaking_70_search_changes]]
=== Search and Query DSL changes

==== Changes to queries
*   The default value for `transpositions` parameter of `fuzzy` query
    has been changed to `true`.

==== Adaptive replica selection enabled by default

Adaptive replica selection has been enabled by default. If you wish to return to
the older round robin of search requests, you can use the
`cluster.routing.use_adaptive_replica_selection` setting:

[source,js]
--------------------------------------------------
PUT /_cluster/settings
{
    "transient": {
        "cluster.routing.use_adaptive_replica_selection": false
    }
}
--------------------------------------------------
// CONSOLE

==== Search API returns `400` for invalid requests

The Search API returns `400 - Bad request` while it would previously return
`500 - Internal Server Error` in the following cases of invalid request:

*   the result window is too large
*   sort is used in  combination with rescore
*   the rescore window is too large
*   the number of slices is too large
*   keep alive for scroll is too large
*   number of filters in the adjacency matrix aggregation is too large


==== Scroll queries cannot use the `request_cache` anymore

Setting `request_cache:true` on a query that creates a scroll (`scroll=1m`)
has been deprecated in 6 and will now return a `400 - Bad request`.
Scroll queries are not meant to be cached.

==== Term Suggesters supported distance algorithms

The following string distance algorithms were given additional names in 6.2 and
their existing names were deprecated. The deprecated names have now been
removed.

* 	`levenstein` - replaced by `levenshtein`
* 	`jarowinkler` - replaced by `jaro_winkler`
