Release notes

edit

8.1.2 (2022-03-30)

edit
  • Client is compatible with Elasticsearch 8.1.2

8.1.1 (2022-03-22)

edit

Documents

edit
  • Changed the source and dest parameters of the reindex API to be required.

Mappings

edit
  • Changed the fields parameter of the field_caps API to be required.

8.1.0 (2022-03-08)

edit

Transforms

edit
  • Added the transform.reset_transform API

8.0.0 (2022-02-10)

edit

Added

edit
  • Added the top-level .options() method to Elasticsearch and AsyncElasticsearch for modifying transport options.
  • Added parameters corresponding to JSON request body fields for all APIs
  • Added basic_auth parameter for specifying username and password authentication
  • Added bearer_auth parameter for specifying an HTTP bearer token or service token
  • Added the meta property to ApiError to access the HTTP response metadata of an error.
  • Added a check that a compatible version of the elastic-transport package is installed.

Changed

edit
  • Changed the transport layer to use the elastic-transport package
  • Changed user-defined body parameters to have semantic names (e.g index(document={...}) instead of index(body={...})).
  • Changed responses to be objects with two properties, meta for response metadata (HTTP status, headers, node, etc) and body for a typed body.
  • Changed AsyncElasticsearch to always be available, regardless of whether aiohttp is installed
  • Changed exception hierarchy, the major change is a new exception ApiError which differentiates between an error that’s raised from the transport layer (previously elasticsearch.exceptions.TransportError, now elastic_transport.TransportError) and one raised from the API layer
  • Changed the name of JSONSerializer to JsonSerializer for consistency with other serializer names. Added an alias to the old name for backwards compatibility
  • Changed the default mimetypes (application/json) to instead use compatibility mimetypes (application/vnd.elasticsearch+json) which always request for responses compatibility with version 8.x.

Removed

edit
  • Removed support for Python 2.7 and Python 3.5, the library now supports only Python 3.6+
  • Removed the elasticsearch.connection module as all functionality has been moved to the elastic-transport package
  • Removed the default URL of http://localhost:9200 due to Elasticsearch 8.0 default configuration being https://localhost:9200. The client’s connection to Elasticsearch now must be specified with scheme, host, and port or with the cloud_id parameter
  • Removed the ability to use positional arguments with API methods. Going forward all API parameters must be keyword-only parameters
  • Removed the doc_type, include_type_name, and copy_settings parameters from many document and index APIs

Deprecated

edit
  • Deprecated the body and params parameters on all APIs
  • Deprecated setting transport options http_auth, api_key, ignore, request_timeout, headers, and opaque_id All of these settings should instead be set via the .options() method
  • Deprecated the elasticsearch.transport and elasticsearch.client modules. These modules will be removed in a future version

CAT

edit
  • Removed the deprecated local parameter from the cat.indices, cat.nodes, cat.shards API
  • Removed the deprecated allow_no_datafeeds parameter from the cat.ml_datafeeds API
  • Removed the deprecated allow_no_jobs parameter from the cat.ml_jobs API
  • Removed the deprecated size parameter from the cat.thread_pool API
  • Added the time parameter to the cat.thread_pool API

Documents

edit
  • Removed the deprecated size parameter from the delete_by_query API
  • Removed the deprecated size parameter from the update_by_query API

Indices

edit
  • Removed the deprecated indices.flush_synced API
  • Removed the deprecated indices.freeze API
  • Removed the deprecated indices.get_upgrade API
  • Removed the deprecated indices.upgrade API
  • Removed the deprecated indices.exist_type API
  • Removed the deprecated parameter copy_settings from the indices.shrink API
  • Deprecated the verbose parameter of the indices.segments API

License / X-Pack

edit
  • Deprecated the accept_enterprise parameter of the license.get API
  • Deprecated the accept_enterprise parameter of the xpack.info API

Machine Learning

edit
  • Added the experimental ml.infer_trained_model_deployment API
  • Added the experimental ml.put_trained_model_definition_part API
  • Added the experimental ml.put_trained_model_vocabulary API
  • Added the experimental ml.start_trained_model_deployment API
  • Added the experimental ml.stop_trained_model_deployment API
  • Added the timeout parameter to the ml.delete_trained_model API
  • Removed the deprecated allow_no_jobs parameter from the ml.close_job API
  • Removed the deprecated ml.find_text_structure API
  • Removed the deprecated allow_no_datafeeds parameter from the ml.get_datafeed_stats API
  • Removed the deprecated allow_no_datafeeds parameter from the ml.get_datafeeds API
  • Removed the deprecated allow_no_jobs parameter from the ml.get_job_stats API
  • Removed the deprecated allow_no_jobs parameter from the ml.get_jobs API
  • Removed the deprecated allow_no_jobs parameter from the ml.get_overall_buckets API

Search

edit
  • Added the experimental knn_search API

Searchable Snapshots

edit
  • Removed the deprecated searchable_snapshots.repository_stats API

Snapshots

edit
  • Changed the snapshot.delete API to accept multiple snapshots

Security

edit
  • Added the security.enroll_kibana API
  • Added the security.enroll_node API

7.17.1 (2022-02-28)

edit
  • Fixed AiohttpHttpConnection` to not leak TLS connections when the socket isn’t explicitly shutdown by the peer
  • Fixed the from parameter to be rewritten to from_ when used with the scan and async_scan helpers

7.17.0 (2022-02-01)

edit
  • Client is compatible with Elasticsearch 7.17.0

7.16.3 (2022-01-13)

edit
  • Client is compatible with Elasticsearch 7.16.3

7.16.2 (2021-12-27)

edit
  • Client is compatible with Elasticsearch 7.16.2

7.16.1 (2021-12-13)

edit

Fixed

edit
  • Fixed issue where the AIOHttpConnection wouldn’t log query parameters for URLs.

7.16.0 (2021-12-07)

edit

Deprecated

edit
  • Deprecated the send_get_body_as parameter. This parameter is no longer necessary as APIs all use non-GET HTTP methods when using a body.
  • Removal of body, params, and other per-request parameters has been delayed beyond 8.0.0. Changed deprecation warnings to mention "future version" instead of 8.0.0.

Fixed

edit
  • Fixed an issue with unicode HTTP headers with the urllib3 HTTP client
  • Fixed an issue with the scan helper to always set the sort and scroll parameters

Search

edit
  • Changed the keep_alive parameter of the open_point_in_time API to be required to reflect its required status within Elasticsearch
  • Added the track_total_hits parameter to the search_mvt API

Fleet

edit
  • Changed the fleet.global_checkpoints API from experimental to stable
  • Added the fleet.search experimental API
  • Added the fleet.msearch experimental API

Indices

edit
  • Added the indices.modify_data_stream API

Ingest

edit
  • Added the if_version parameter to the ingest.put_pipeline API

Migration

edit
  • Added the migration.get_feature_upgrade_status API
  • Added the migration.post_feature_upgrade API

Machine Learning

edit
  • Added the defer_definition_decompression parameter to the ml.put_trained_model API

Transforms

edit
  • Added the transform.upgrade_transforms API

7.15.2 (2021-11-10)

edit

Nodes

edit
  • Documented additional options the metric parameter of the nodes.info API.

7.15.1 (2021-10-14)

edit

Client

edit
  • Fixed a performance regression in JSONSerializer.default() when numpy and pandas weren’t installed.
  • Changed the DeprecationWarning for the body parameter to be a "removed in a future version" instead of "removed in 8.0" in line with the 8.0 roadmap.

Search

edit
  • The index parameter of the open_point_in_time API is now required, was optional.

7.15.0 (2021-09-22)

edit

Client

edit
  • Added more precise type hints to many API parameters
  • Added explicit parameters to AsyncTransport and AIOHttpConnection
  • Added MapboxVectorTileSerializer for handling the application/vnd.mapbox-vector-tile mimetype. Because this mimetype is binary rather than text the raw response bytes are forwarded from the serializer without decoding
  • Reduced amount of time to import the elasticsearch module by delaying imports of pandas and numpy until later in the JSON serialization stage if necessary
  • Deprecated positional arguments for APIs, instead use keyword arguments exclusively.

Search

edit
  • Added the search_mvt experimental API
  • Added body field parameters to the search, scroll, and clear_scroll APIs
  • Deprecated the body parameter of the search, scroll, and clear_scroll APIs

Documents

edit
  • Added body field parameters to the update API
  • Added the document parameter to the create and index APIs
  • Deprecated the body parameter of the create, index, and update APIs

Indices

edit
  • Added the indices.disk_usage experimental API
  • Added the indices.fields_usage_stats experimental API
  • Added body field parameters to the indices.create API
  • Deprecated the body parameter of the indices.create API

Machine Learning

edit
  • Added the ignore_unavailable, allow_no_indices, ignore_throttled, and expand_wildcards parameters to the ml.put_job API

Nodes

edit
  • Added the nodes.clear_repositories_metering_archive experimental API
  • Added the nodes.get_repositories_metering_info experimental API
  • Added the shards option to the index_metric parameter of the nodes.stats API
  • Deprecated the doc_type parameter of the nodes.hot_threads API, instead use the type parameter

    Security

    edit
  • Added the security.query_api_keys API

License

edit
  • Deprecated the doc_type parameter of the license.post_start_trial API, instead use the type parameter

7.14.0 (2021-08-02)

edit
  • Added check that client is connected to an Elasticsearch cluster. If the client isn’t connected to a supported Elasticsearch cluster the UnsupportedProductError exception will be raised.

Search

edit
  • Added the terms_enum beta API
  • Removed the query_and_fetch and dfs_query_and_fetch options in the search_type parameter to the msearch, msearch_template and search_template APIs

Index Lifecycle Management

edit
  • Added the ilm.migrate_to_data_tiers API

Machine Learning

edit
  • Added the ml.reset_job API

Security

edit
  • Added the security.saml_authenticate API
  • Added the security.saml_complete_logout API
  • Added the security.saml_invalidate API
  • Added the security.saml_logout API
  • Added the security.saml_prepare_authentication API
  • Added the security.saml_service_provider_metadata API

SQL

edit
  • Added the sql.delete_async API
  • Added the sql.get_async API
  • Added the sql.get_async_status API

Snapshots

edit
  • Added the include_repository parameter to snapshot.get API
  • Added the rarely_abort_writes parameter to the snapshot.repository_analyze API

7.13.4 (2021-07-20)

edit
  • Client is compatible with Elasticsearch 7.13.4

7.13.3 (2021-07-07)

edit
  • NameError would be raised on Python 2.7 and 3.4 when a connection error would have otherwise been raised.

7.13.2 (2021-06-21)

edit
  • Fixed Transport.perform_request() to properly reraise RecursionError
  • Fixed AIOHttpConnection to no longer send Accept-Encoding: gzip, deflate when http_compress=None. Instead now sends no Accept-Encoding header in the default case

Snapshot

edit
  • Added the snapshot.repository_analyze API

7.13.1 (2021-06-02)

edit
  • Client is compatible with Elasticsearch 7.13.1

7.13.0 (2021-05-25)

edit
  • Added support for compatibility header for Elasticsearch. If the environment variable ELASTIC_CLIENT_APIVERSIONING=1 is set the client will send the headers Accept and Content-Type with the following value: application/vnd.elasticsearch+json;compatible-with=7.

Cat

edit
  • Added the include_unloaded_segments parameter to the cat.nodes API
  • Added the features.reset_features experimental API
  • Added the fleet.global_checkpoints expiremental API
  • Added the ingest.geo_ip_stats API

Machine Learning

edit
  • Added the ml.delete_trained_model_alias API
  • Added the ml.preview_data_frame_analytics API
  • Added the ml.put_trained_model_alias API
  • Changed the ml.delete_data_frame_analytics, ml.delete_trained_model, ml.explain_data_frame_analytics, ml.get_data_fram_analytics, ml.get_data_frame_analytics_stats, ml.get_trained_models, ml.get_trained_models_stats, ml.put_trained_model, ml.start_data_frame_analytics, ml.stop_data_frame_analytics, ml.update_data_frame_analytics APIs from beta to stable.

Nodes

edit
  • Added include_unloaded_segments parameter to node.stats API

Searchable Snapshots

edit
  • Added the searchable_snapshots.cache_stats experimental API

Security

edit
  • Added the security.clear_cached_service_tokens beta API
  • Added the security.create_service_token beta API
  • Added the security.delete_service_token beta API
  • Added the security.get_service_accounts beta API
  • Added the security.get_service_credentials beta API

Shutdown

edit
  • Added the shutdown.delete_node experiemental API
  • Added the shutdown.get_node experimental API
  • Added the shutdown.put_node experimental API

Snapshots

edit
  • Added the index_details parameter to snapshot.get API

Text Structure

edit
  • Changed the text_structure.find_structure API from experimental to stable

7.12.1 (2021-04-27)

edit

Text Structure

edit
  • Changed the text_structure.find_text_structure API from experimental to stable

7.12.0 (2021-03-23)

edit

Autoscaling

edit
  • Changed autoscaling.delete_autoscaling_policy, autoscaling.get_autoscaling_policy, and autoscaling.put_autoscaling_policy APIs from experimental to stable

EQL

edit
  • Added eql.get_status API

Logash

edit
  • Added logstash.delete_pipeline, logstash.get_pipeline, and logstash.put_pipeline APIs

Machine Learning

edit
  • Removed the experimental ml.find_text_structure API

Searchable Snapshots

edit
  • Added storage parameter to the searchable_snapshots.mount API
  • Added level parameter to the searchable_snapshots.stats API

Search

edit
  • Added the min_compatible_shard_node parameter to search()

Text Structure

edit
  • Added experimental text_structure.find_text_structure API

7.11.0 (2021-02-10)

edit
  • Added support for 7.11 APIs.
  • Added the X-Elastic-Client-Meta HTTP header and the meta_header parameter for controlling the header (#1473).
  • Added ElasticsearchWarning which is raised when the Warning HTTP header is returned from Elasticsearch. ElasticsearchDeprecationWarning is now an alias for this warning type (#1495).

7.10.1 (2020-12-09)

edit
  • Fixed issue where the Scan helper would fail if a scroll response returned without a value for _shards.skipped (#1451).
  • Fixed handling of IPv6 hosts with a port in the computed Connection.host property (#1460).
  • Fixed documented task management API stability, should have been as "experimental" (#1471).
  • Changed deprecated collections.Mapping in favor of collections.abc.Mapping for Python 3.9 (#1443).

7.10.0 (2020-11-11)

edit
  • Added support for Elasticsearch 7.10 APIs.
  • Added basic type stubs for static type checking and IDE auto-complete of API parameters (#1297, #1406).
  • Added support for Optimistic Concurrency Control options (_if_seq_no/_if_primary_term) to bulk helpers (#1387).
  • Added support for passing _source with "_op_type": "update" bulk helpers (#1387).
  • Fixed bug where Connection.log_request_failure() call would receive the compressed HTTP body rather than uncompressed when an error is raised for RequestsHttpConnection (#1394).
  • Fix a typo in AsyncTransport where sniff_timeout was used instead of sniffer_timeout (#1431).
  • Removed explicit yarl dependency from [async] extra to avoid issue where pip would override aiohttp's pin of yarl. This is not a problem if you install with --use-feature=2020-resolver. Users should see no changes (#1401).

7.9.1 (2020-08-19)

edit
  • Fixed the import of async helpers which were not available in 7.9.0 (#1353).
  • Added support for url_prefix when using AIOHttpConnection (#1357).

7.9.0 (2020-08-18)

edit
  • Added support for ES 7.9 APIs.
  • Fixed retries to not raise an error when sniff_on_connection_error=True and a TransportError is raised during the sniff step. Instead the retry will continue or the error that triggered the retry will be raised (#1279, #1326).

7.8.1 (2020-07-30)

edit
  • Added the accept_enterprise parameter to xpack.info API (#1337).

7.8.0 (2020-06-18)

edit
  • Added support for ES 7.8 APIs.
  • Added support for async/await with asyncio via AsyncElasticsearch. See documentation on `using Asyncio with Elasticsearch (#1232, #1235, #1236).
  • Added async helpers async_bulk, async_streaming_bulk, async_scan, and async_reindex (#1260).
  • Updated exists_source API to use non-deprecated Elasticsearch API routes when doc_type is not specified to suppress deprecation warnings (#1272).

7.7.1 (2020-05-26)

edit
  • Updated create, update, explain, get_source, and termvectors APIs to use non-deprecated Elasticsearch API routes when doc_type is not specified to suppress deprecation warnings (#1253).

7.7.0 (2020-05-13)

edit
  • Added support for ES 7.7 APIs (#1182).
  • Added ElasticsearchDeprecationWarning which is raised when a Warning HTTP header is sent by Elasticsearch (#1179).
  • Added support for serializing numpy and pandas data types to JSONSerializer (#1180).
  • Added certifi as a dependency so HTTPS connections work automatically.
  • Fixed duplicated parameters in some API docstrings (#1169, thanks to Morten Hauberg).

7.6.0 (2020-03-19)

edit
  • Added support for ES 7.6 APIs.
  • Added support for X-Opaque-Id to identify long-running tasks.
  • Added support for HTTP compression to RequestsHttpConnection.
  • Updated default setting of http_compress when using cloud_id to True.
  • Updated default setting of sniffing when using cloud_id to False.
  • Updated default port to 443 if cloud_id and no other port is defined on the client or within cloud_id.
  • Updated GET HTTP requests that contain a body to POST where the API allows this to fix proxies rejecting these requests.
  • Fix regression of client.cluster.state() where the default metric should be set to "_all" if an index is given (#1143).
  • Fix regression of client.tasks.get() without a task_id having similar functionality to client.tasks.list() This will be removed in v8.0 of elasticsearch-py (#1157).

7.5.1 (2020-01-19)

edit
  • All API is now auto generated.
  • Deprecated the .xpack namespace.
  • Update client to support ES 7.5 APIs.

7.1.0 (2019-11-14)

edit
  • Fix sniffing with http.publish_host.
  • Fix request_timeout for indices APIs.
  • Allow access to x-pack features without xpack namespace.
  • Fix mark dead.

7.0.5 (2019-10-01)

edit
  • Fix verify_certs=False.

7.0.4 (2019-08-22)

edit
  • Fix wheel distribution.

7.0.3 (2019-08-21)

edit
  • Remove sleep in retries.
  • Pass scroll_id through body in scroll.
  • Add user-agent.

7.0.2 (2019-05-29)

edit
  • Add connection parameter for Elastic Cloud cloud_id.
  • ML client uses client object for _bulk_body requests.

7.0.1 (2019-05-19)

edit
  • Use black to format the code.
  • Update the test matrix to only use current pythons and 7.x ES.
  • Blocking pool must fit thread_count.
  • Update client to support missing ES 7 API’s and query params.

7.0.0 (2019-04-11)

edit
  • Removed deprecated option update_all_types.
  • Using insecure SSL configuration (verify_cert=False) raises a warning, this can be not showed with ssl_show_warn=False.
  • Add support for 7.x APIs in Elasticsearch both xpack and oss flavors.
  • Ordering of parameters may have changed for some APIs compared to 6.8. Use keyword arguments instead of positional arguments to work-around this change.