8.0.0
For information on how migrate your application from v7.x to v8.0.0 you can read the migration guide here.
Client
Added
- Added the top-level
.options()method toElasticsearchandAsyncElasticsearchfor modifying transport options. - Added parameters corresponding to JSON request body fields for all APIs
- Added
basic_authparameter for specifying username and password authentication - Added
bearer_authparameter for specifying an HTTP bearer token or service token - Added the
metaproperty toApiErrorto access the HTTP response metadata of an error. - Added a check that a compatible version of the
elastic-transportpackage is installed.
Changed
- Changed the transport layer to use the
elastic-transportpackage - Changed user-defined
bodyparameters to have semantic names (e.gindex(document={...})instead ofindex(body={...})). - Changed responses to be objects with two properties,
metafor response metadata (HTTP status, headers, node, etc) andbodyfor a typed body. - Changed
AsyncElasticsearchto always be available, regardless of whetheraiohttpis installed - Changed exception hierarchy, the major change is a new exception
ApiErrorwhich differentiates between an error that's raised from the transport layer (previouslyelasticsearch.exceptions.TransportError, nowelastic_transport.TransportError) and one raised from the API layer - Changed the name of
JSONSerializertoJsonSerializerfor 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
- Removed support for Python 2.7 and Python 3.5, the library now supports only Python 3.6+
- Removed the
elasticsearch.connectionmodule as all functionality has been moved to theelastic-transportpackage - Removed the default URL of
http://localhost:9200due to Elasticsearch 8.0 default configuration beinghttps://localhost:9200.
The client's connection to Elasticsearch now must be specified with scheme, host, and port or with thecloud_idparameter - Removed the ability to use positional arguments with API methods. Going forward all API parameters must be keyword-only parameters
Deprecated
- Deprecated the
bodyandparamsparameters on all APIs - Deprecated setting transport options
http_auth,api_key,ignore,request_timeout,headers, andopaque_id
All of these settings should instead be set via the.options()method - Deprecated the
elasticsearch.transportandelasticsearch.clientmodules. These modules will be removed in a future version
API
- Removed the
doc_type,include_type_name, andcopy_settingsparameters from many document and index APIs
CAT
- Removed the deprecated
localparameter from thecat.indices,cat.nodes,cat.shardsAPI - Removed the deprecated
allow_no_datafeedsparameter from thecat.ml_datafeedsAPI - Removed the deprecated
allow_no_jobsparameter from thecat.ml_jobsAPI - Removed the deprecated
sizeparameter from thecat.thread_poolAPI - Added the
timeparameter to thecat.thread_poolAPI
Documents
- Removed the deprecated
sizeparameter from thedelete_by_queryAPI - Removed the deprecated
sizeparameter from theupdate_by_queryAPI
Indices
- Removed the deprecated
indices.flush_syncedAPI - Removed the deprecated
indices.freezeAPI - Removed the deprecated
indices.get_upgradeAPI - Removed the deprecated
indices.upgradeAPI - Removed the deprecated
indices.exist_typeAPI - Removed the deprecated parameter
copy_settingsfrom theindices.shrinkAPI - Deprecated the
verboseparameter of theindices.segmentsAPI
License / X-Pack
- Deprecated the
accept_enterpriseparameter of thelicense.getAPI - Deprecated the
accept_enterpriseparameter of thexpack.infoAPI
Machine Learning
- Added the experimental
ml.infer_trained_model_deploymentAPI - Added the experimental
ml.put_trained_model_definition_partAPI - Added the experimental
ml.put_trained_model_vocabularyAPI - Added the experimental
ml.start_trained_model_deploymentAPI - Added the experimental
ml.stop_trained_model_deploymentAPI - Added the
timeoutparameter to theml.delete_trained_modelAPI - Removed the deprecated
allow_no_jobsparameter from theml.close_jobAPI - Removed the deprecated
ml.find_text_structureAPI - Removed the deprecated
allow_no_datafeedsparameter from theml.get_datafeed_statsAPI - Removed the deprecated
allow_no_datafeedsparameter from theml.get_datafeedsAPI - Removed the deprecated
allow_no_jobsparameter from theml.get_job_statsAPI - Removed the deprecated
allow_no_jobsparameter from theml.get_jobsAPI - Removed the deprecated
allow_no_jobsparameter from theml.get_overall_bucketsAPI
Search
- Added the experimental
knn_searchAPI
Searchable Snapshots
- Removed the deprecated
searchable_snapshots.repository_statsAPI
Snapshots
- Changed the
snapshot.deleteAPI to accept multiple snapshots
Security
- Added the
security.enroll_kibanaAPI - Added the
security.enroll_nodeAPI