123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- [float]
- [[breaking_70_search_changes]]
- === Search and Query DSL changes
- [float]
- ==== Changes to queries
- * The default value for `transpositions` parameter of `fuzzy` query
- has been changed to `true`.
- * The `query_string` options `use_dismax`, `split_on_whitespace`,
- `all_fields`, `locale`, `auto_generate_phrase_query` and
- `lowercase_expanded_terms` deprecated in 6.x have been removed.
- * Purely negative queries (only MUST_NOT clauses) now return a score of `0`
- rather than `1`.
- * The boundary specified using geohashes in the `geo_bounding_box` query
- now include entire geohash cell, instead of just geohash center.
- * Attempts to generate multi-term phrase queries against non-text fields
- with a custom analyzer will now throw an exception
- * An `envelope` crossing the dateline in a `geo_shape `query is now processed
- correctly when specified using REST API instead of having its left and
- right corners flipped.
- [float]
- ==== 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
- [float]
- ==== 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
- * script compilation errors
- [float]
- ==== 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.
- [float]
- ==== Scroll queries cannot use `rescore` anymore
- Including a rescore clause on a query that creates a scroll (`scroll=1m`) has
- been deprecated in 6.5 and will now return a `400 - Bad request`. Allowing
- rescore on scroll queries would break the scroll sort. In the 6.x line, the
- rescore clause was silently ignored (for scroll queries), and it was allowed in
- the 5.x line.
- [float]
- ==== 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`
- [float]
- ==== `popular` mode for Suggesters
- The `popular` mode for Suggesters (`term` and `phrase`) now uses the doc frequency
- (instead of the sum of the doc frequency) of the input terms to compute the frequency
- threshold for candidate suggestions.
- [float]
- ==== Limiting the number of terms that can be used in a Terms Query request
- Executing a Terms Query with a lot of terms may degrade the cluster performance,
- as each additional term demands extra processing and memory.
- To safeguard against this, the maximum number of terms that can be used in a
- Terms Query request has been limited to 65536. This default maximum can be changed
- for a particular index with the index setting `index.max_terms_count`.
- [float]
- ==== Limiting the length of regex that can be used in a Regexp Query request
- Executing a Regexp Query with a long regex string may degrade search performance.
- To safeguard against this, the maximum length of regex that can be used in a
- Regexp Query request has been limited to 1000. This default maximum can be changed
- for a particular index with the index setting `index.max_regex_length`.
- [float]
- ==== Limiting the number of auto-expanded fields
- Executing queries that use automatic expansion of fields (e.g. `query_string`, `simple_query_string`
- or `multi_match`) can have performance issues for indices with a large numbers of fields.
- To safeguard against this, a hard limit of 1024 fields has been introduced for queries
- using the "all fields" mode ("default_field": "*") or other fieldname expansions (e.g. "foo*").
- [float]
- ==== Invalid `_search` request body
- Search requests with extra content after the main object will no longer be accepted
- by the `_search` endpoint. A parsing exception will be thrown instead.
- [float]
- ==== Context Completion Suggester
- The ability to query and index context enabled suggestions without context,
- deprecated in 6.x, has been removed. Context enabled suggestion queries
- without contexts have to visit every suggestion, which degrades the search performance
- considerably.
- For geo context the value of the `path` parameter is now validated against the mapping,
- and the context is only accepted if `path` points to a field with `geo_point` type.
- [float]
- ==== Semantics changed for `max_concurrent_shard_requests`
- `max_concurrent_shard_requests` used to limit the total number of concurrent shard
- requests a single high level search request can execute. In 7.0 this changed to be the
- max number of concurrent shard requests per node. The default is now `5`.
- [float]
- ==== `max_score` set to `null` when scores are not tracked
- `max_score` used to be set to `0` whenever scores are not tracked. `null` is now used
- instead which is a more appropriate value for a scenario where scores are not available.
- [float]
- ==== Negative boosts are not allowed
- Setting a negative `boost` in a query, deprecated in 6x, are not allowed in this version.
- To deboost a specific query you can use a `boost` comprise between 0 and 1.
|