2015-09-03 09:00:52 -04:00
|
|
|
[[breaking-changes-3.0]]
|
|
|
|
== Breaking changes in 3.0
|
|
|
|
|
|
|
|
This section discusses the changes that you need to be aware of when migrating
|
|
|
|
your application to Elasticsearch 3.0.
|
|
|
|
|
|
|
|
=== Search changes
|
|
|
|
|
|
|
|
==== `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.
|
|
|
|
|
2015-09-04 17:10:33 -04:00
|
|
|
=== Parent/Child changes
|
|
|
|
|
|
|
|
The `children` aggregation, parent child inner hits and `has_child` and `has_parent` queries will not work on indices
|
|
|
|
with `_parent` field mapping created before version `2.0.0`. The data of these indices need to be re-indexed into a new index.
|
|
|
|
|
|
|
|
The format of the join between parent and child documents have changed with the `2.0.0` release. The old
|
|
|
|
format can't read from version `3.0.0` and onwards. The new format allows for a much more efficient and
|
|
|
|
scalable join between parent and child documents and the join data structures are stored on on disk
|
|
|
|
data structures as opposed as before the join data structures were stored in the jvm heap space.
|