|
| 1 | +[[release_notes_714]] |
| 2 | +=== 7.14 Release notes |
| 3 | + |
| 4 | +[discrete] |
| 5 | +==== Client |
| 6 | + |
| 7 | + |
| 8 | +This release changes the way in which the transport layer and the client interact. Previously, when using `elasticsearch-transport`, `Elasticsearch::Transport::Client` had a convenient wrapper, so it could be used as `Elasticsearch::Client`. Now, we are decoupling the transport layer from the Elasticsearch client. If you're using the `elasticsearch` gem, not much will change. It will instantiate a new `Elasticsearch::Transport::Client` when you instantiate `Elasticsearch::Client` and the endpoints from `elasticsearch-api` will be available. |
| 9 | + |
| 10 | +`Elasticsearch::Client` has an `attr_accessor` for the transport instance: |
| 11 | + |
| 12 | +[source,ruby] |
| 13 | +------------------------------------ |
| 14 | +> client = Elasticsearch::Client.new |
| 15 | +> client.transport.class |
| 16 | +=> Elasticsearch::Transport::Client |
| 17 | +> client.transport.transport.class |
| 18 | +=> Elasticsearch::Transport::Transport::HTTP::Faraday |
| 19 | +------------------------------------ |
| 20 | + |
| 21 | +The interaction with `elasticsearch-api` remains unchanged. You can use the API endpoints just like before: |
| 22 | + |
| 23 | +[source,ruby] |
| 24 | +------------------------------------ |
| 25 | +> client.info |
| 26 | +=> {"name"=>"instance", |
| 27 | + "cluster_name"=>"elasticsearch", |
| 28 | + "cluster_uuid"=>"id", |
| 29 | + "version"=> |
| 30 | + {"number"=>"7.14.0", |
| 31 | + ... |
| 32 | +}, |
| 33 | + "tagline"=>"You Know, for Search"} |
| 34 | +------------------------------------ |
| 35 | + |
| 36 | +Or perform request directly from the client which will return an `Elasticsearch::Transport::Response` object: |
| 37 | + |
| 38 | +[source,ruby] |
| 39 | +------------------------------------ |
| 40 | +> client.perform_request('GET', '/') |
| 41 | +# This is the same as doing client.transport.perform_request('GET', '/') |
| 42 | +=> #<Elasticsearch::Transport::Transport::Response:0x000055c80bf94bc8 |
| 43 | + @body= |
| 44 | + {"name"=>"instance", |
| 45 | + "cluster_name"=>"elasticsearch", |
| 46 | + "cluster_uuid"=>"id", |
| 47 | + "version"=> |
| 48 | + {"number"=>"7.14.0-SNAPSHOT", |
| 49 | + ... |
| 50 | + }, |
| 51 | + "tagline"=>"You Know, for Search"}, |
| 52 | + @headers= |
| 53 | + {"content-type"=>"application/json; charset=UTF-8", |
| 54 | + "content-length"=>"571", |
| 55 | + ... |
| 56 | + }, |
| 57 | + @status=200> |
| 58 | +------------------------------------ |
| 59 | + |
| 60 | +If you have any problems, please report them in https://github.com/elastic/elasticsearch-ruby/issues/1344[this issue]. |
| 61 | + |
| 62 | +[discrete] |
| 63 | +==== API |
| 64 | + |
| 65 | +Code is now generated from Elastic artifacts instead of checked out code of Elasticsearch. See https://github.com/elastic/elasticsearch-ruby/blob/7.14/elasticsearch-api/utils/README.md#generate[the Generator README] for more info. |
| 66 | + |
| 67 | +- Endpoints `msearch`, `msearch_template` and `search_template` remove `query_and_fetch` and `dfs_query_and_fetch` options from the `search_type` parameter. |
| 68 | +- New parameter `include_repository` in `snapshot.get`: (boolean) Whether to include the repository name in the snapshot info. Defaults to true. |
| 69 | + |
| 70 | +[discrete] |
| 71 | +==== X-Pack |
| 72 | + |
| 73 | +X-Pack is being deprecated. The first time using `xpack` on the client, a warning will be triggered. Please check https://github.com/elastic/elasticsearch-ruby/issues/1274[this issue] for more information. |
| 74 | + |
| 75 | + |
| 76 | +- New endpoints: `index_lifecycle_management.migrate_to_data_tiers`, `machine_learning.reset_job`, `security.saml_authenticate`, `security.saml_complete_logout`, `security.saml_invalidate`, `security.saml_logout`, `security.saml_prepare_authentication`, `security.saml_service_provider_metadata`, `sql.delete_async`, `sql.get_async`, `sql.get_async_status`, `terms_enum`. |
| 77 | +- New experimental endpoints: `machine_learning.infer_trained_model_deployment`, `machine_learning.start_trained_model_deployment`, `machine_learning.stop_trained_model_deployment`. |
| 78 | +- Deprecation: `indices.freeze` and `indices.unfreeze`: Frozen indices are deprecated because they provide no benefit given improvements in heap memory utilization. They will be removed in a future release. |
| 79 | + |
0 commit comments