OpenSearch/client
Luca Cavanna 932a7e3112
Backport of async search changes (#53976)
* Get Async Search: omit _clusters section when empty (#53907)

The _clusters section is omitted by the search API whenever no remote clusters are searched. Async search should do the same, but Get Async Search returns a deserialized response, hence a weird `_clusters` section with all values set to `0` gets returned instead. In fact the recreated Clusters object is not the same object as the EMPTY constant, yet it has the same content.

This commit addresses this by changing the comparison in the `toXContent` method to not print out the section if the number of total clusters is `0`.

* Async search: remove version from response (#53960)

The goal of the version field was to quickly show when you can expect to find something new in the search response, compared to when nothing has changed. This can also be done by looking at the `_shards` section and `num_reduce_phases` returned with the search response. In fact when there has been one or more additional reduction of the results, you can expect new results in the search response. Otherwise, the `_shards` section could notify of additional failures of shards that have completed the query, but that is not a guarantee that their results will be exposed (only when the following partial reduction is performed their results will be available).

That said this commit clarifies this in the docs and removes the version field from the async search response

* Async Search: replicas to auto expand from 0 to 1 (#53964)

This way single node clusters that are green don't go yellow once async search is used, while
all the others still have one replica.

* [DOCS] address timing issue in async search docs tests (#53910)

The docs snippets for submit async search have proven difficult to test as it is not possible to guarantee that you get a response that is not final, even when providing `wait_for_completion=0`. In the docs we want to show though a proper long-running query, and its first response should be partial rather than final.

With this commit we adapt the docs snippets to show a partial response, and replace under the hood all that's needed to make the snippets tests succeed when we get a final response. Also, increased the timeout so we always get a final response.

Closes #53887
Closes #53891
2020-03-23 19:13:31 +01:00
..
benchmark [Backport] Remove dependency substitutions 7.x (#42866) 2019-06-04 13:50:23 -07:00
client-benchmark-noop-api-plugin Remove Xlint exclusions from gradle files 2020-02-20 14:12:05 +00:00
rest Fix roles parsing in client nodes sniffer (#52888) 2020-02-27 15:26:49 -05:00
rest-high-level Backport of async search changes (#53976) 2020-03-23 19:13:31 +01:00
sniffer Upgrade jackson to 2.10.3 and GeoIP to 2.13.1 (#53642) 2020-03-17 10:28:51 -07:00
test Enable tests in FIPS 140 in JDK 11 (#49485) 2020-01-27 11:14:52 +02:00
transport [Backport] Remove dependency substitutions 7.x (#42866) 2019-06-04 13:50:23 -07:00