mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-08 05:58:44 +00:00
Both top level and inline inner hits are now covered by InnerHitBuilder. Although there are differences between top level and inline inner hits, they now make use of the same builder logic. The parsing of top level inner hits slightly changed to be more readable. Before the nested path or parent/child type had to be specified as encapsuting json object, now these settings are simple fields. Before this was required to allow streaming parsing of inner hits without missing contextual information. Once some issues are fixed with inline inner hits (around multi level hierachy of inner hits), top level inner hits will be deprecated and removed in the next major version.
154 lines
4.8 KiB
Plaintext
154 lines
4.8 KiB
Plaintext
[[breaking_50_search_changes]]
|
|
=== Search and Query DSL changes
|
|
|
|
==== `search_type`
|
|
|
|
===== `search_type=count` removed
|
|
|
|
The `count` search type was deprecated since version 2.0.0 and is now removed.
|
|
In order to get the same benefits, you just need to set the value of the `size`
|
|
parameter to `0`.
|
|
|
|
For instance, the following request:
|
|
|
|
[source,sh]
|
|
---------------
|
|
GET /my_index/_search?search_type=count
|
|
{
|
|
"aggs": {
|
|
"my_terms": {
|
|
"terms": {
|
|
"field": "foo"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
---------------
|
|
|
|
can be replaced with:
|
|
|
|
[source,sh]
|
|
---------------
|
|
GET /my_index/_search
|
|
{
|
|
"size": 0,
|
|
"aggs": {
|
|
"my_terms": {
|
|
"terms": {
|
|
"field": "foo"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
---------------
|
|
|
|
===== `search_type=scan` removed
|
|
|
|
The `scan` search type was deprecated since version 2.1.0 and is now removed.
|
|
All benefits from this search type can now be achieved by doing a scroll
|
|
request that sorts documents in `_doc` order, for instance:
|
|
|
|
[source,sh]
|
|
---------------
|
|
GET /my_index/_search?scroll=2m
|
|
{
|
|
"sort": [
|
|
"_doc"
|
|
]
|
|
}
|
|
---------------
|
|
|
|
Scroll requests sorted by `_doc` have been optimized to more efficiently resume
|
|
from where the previous request stopped, so this will have the same performance
|
|
characteristics as the former `scan` search type.
|
|
|
|
==== `fields` parameter
|
|
|
|
The `fields` parameter used to try to retrieve field values from stored
|
|
fields, and fall back to extracting from the `_source` if a field is not
|
|
marked as stored. Now, the `fields` parameter will only return stored fields
|
|
-- it will no longer extract values from the `_source`.
|
|
|
|
==== search-exists API removed
|
|
|
|
The search exists api has been removed in favour of using the search api with
|
|
`size` set to `0` and `terminate_after` set to `1`.
|
|
|
|
|
|
==== Deprecated queries removed
|
|
|
|
The following deprecated queries have been removed:
|
|
|
|
`filtered`:: Use `bool` query instead, which supports `filter` clauses too.
|
|
`and`:: Use `must` clauses in a `bool` query instead.
|
|
`or`:: Use `should` clauses in a `bool` query instead.
|
|
`limit`:: Use the `terminate_after` parameter instead.
|
|
`fquery`:: Is obsolete after filters and queries have been merged.
|
|
`query`:: Is obsolete after filters and queries have been merged.
|
|
`query_binary`:: Was undocumented and has been removed.
|
|
`filter_binary`:: Was undocumented and has been removed.
|
|
|
|
|
|
==== Changes to queries
|
|
|
|
* Removed support for the deprecated `min_similarity` parameter in `fuzzy
|
|
query`, in favour of `fuzziness`.
|
|
|
|
* Removed support for the deprecated `fuzzy_min_sim` parameter in
|
|
`query_string` query, in favour of `fuzziness`.
|
|
|
|
* Removed support for the deprecated `edit_distance` parameter in completion
|
|
suggester, in favour of `fuzziness`.
|
|
|
|
* Removed support for the deprecated `filter` and `no_match_filter` fields in `indices` query,
|
|
in favour of `query` and `no_match_query`.
|
|
|
|
* Removed support for the deprecated `filter` fields in `nested` query, in favour of `query`.
|
|
|
|
* Removed support for the deprecated `minimum_should_match` and
|
|
`disable_coord` in `terms` query, use `bool` query instead. Also removed
|
|
support for the deprecated `execution` parameter.
|
|
|
|
* Removed support for the top level `filter` element in `function_score` query, replaced by `query`.
|
|
|
|
* The `collect_payloads` parameter of the `span_near` query has been deprecated. Payloads will be loaded when needed.
|
|
|
|
* The `score_type` parameter to the `nested`, has_child` and `has_parent` queries has been removed in favour of `score_mode`.
|
|
Also, the `total` score mode has been removed in favour of the `sum` mode.
|
|
|
|
* When the `max_children` parameter was set to `0` on the `has_child` query
|
|
then there was no upper limit on how many child documents were allowed to
|
|
match. Now, `0` really means that zero child documents are allowed. If no
|
|
upper limit is needed then the `max_children` parameter shouldn't be specified
|
|
at all.
|
|
|
|
* The `exists` query will now fail if the `_field_names` field is disabled.
|
|
|
|
|
|
==== Top level `filter` parameter
|
|
|
|
Removed support for the deprecated top level `filter` in the search api,
|
|
replaced by `post_filter`.
|
|
|
|
==== Highlighters
|
|
|
|
Removed support for multiple highlighter names, the only supported ones are:
|
|
`plain`, `fvh` and `postings`.
|
|
|
|
==== Term vectors API
|
|
|
|
The term vectors APIs no longer persist unmapped fields in the mappings.
|
|
|
|
The `dfs` parameter to the term vectors API has been removed completely. Term
|
|
vectors don't support distributed document frequencies anymore.
|
|
|
|
==== Sort
|
|
|
|
The `reverse` parameter has been removed, in favour of explicitly
|
|
specifying the sort order with the `order` option.
|
|
|
|
==== Inner hits
|
|
|
|
* The format of top level inner hits has been changed to be more readable. All options are now set on the same level.
|
|
So the `path` and `type` options are specified on the same level where `query` and other options are specified.
|