7.10.0 (2020-11-11)

  • 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)

  • 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)

  • 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 (See #1279 and #1326)

7.8.1 (2020-07-30)

  • Added the accept_enterprise parameter to API (See #1337)

7.8.0 (2020-06-18)

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

7.7.1 (2020-05-26)

  • 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 (See #1253)

7.7.0 (2020-05-13)

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

7.6.0 (2020-03-19)

  • 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 (See #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 (See #1157)

7.5.1 (2020-01-19)

  • 7.5.0 tag was not released so retagging


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

7.1.0 (2019-11-14)

  • 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)

  • Fix verify_certs=False

7.0.4 (2019-08-22)

  • Fix wheel distribution

7.0.3 (2019-08-21)

  • remove sleep in retries
  • pass scroll_id through body in scroll
  • add user-agent

7.0.2 (2019-05-29)

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

7.0.1 (2019-05-19)

  • 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)

  • 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 api’s in Elasticsearch both xpack and oss flavors

6.8.1 (2020-03-31)

  • Added support for serializing numpy and pandas data types to JSONSerializer. (See #1180)
  • Fixed a namespace conflict in elasticsearch6 wheel distribution for v6.8.0 (See #1186)

6.8.0 (2020-03-12)

  • Added support for HTTP compression to RequestsHttpConnection
  • Updated cloud_id default port
  • Enable HTTP compression and disable sniffing by default when using Cloud ID to connect to ES.
  • Updated versioning scheme to match ES major.minor

6.3.0 (2018-06-20)

  • Add an exponential wait on delays
  • Fix issues with dependencies
  • Adding X-pack Docs
  • Adding forecast to x-pack ML client

6.2.0 (2018-03-20)

  • cleanup for SSL Context
  • Add X-Pack clients to -py
  • Adding Gzip support for capacity constrained networks
  • _routing in bulk action has been deprecated in ES. Introduces a breaking change if you use routing as a field in your documents.

6.1.1 (2018-01-05)

  • Updates to SSLContext logic to make it easier to use and have saner defaults.
  • Doc updates

6.1.0 (2018-01-05)

  • bad release

6.0.0 (2017-11-14)

  • compatibility with Elasticsearch 6.0.0

5.5.0 (2017-11-10)

  • streaming_bulk helper now supports retries with incremental backoff
  • scan helper properly checks for successful shards instead of just checking failed
  • compatible release with elasticsearch 5.6.4
  • fix handling of UTF-8 surrogates

5.4.0 (2017-05-18)

  • bulk helpers now extract pipeline parameter from the action dictionary.

5.3.0 (2017-03-30)

  • Compatibility with elasticsearch 5.3

5.2.0 (2017-02-12)

  • The client now automatically sends Content-Type http header set to application/json. If you are explicitly passing in other encoding than json you need to set the header manually.

5.1.0 (2017-01-11)

  • Fixed sniffing

5.0.1 (2016-11-02)

  • Fixed performance regression in scan helper

5.0.0 (2016-10-19)

  • Version compatible with elasticsearch 5.0
  • when using SSL certificate validation is now on by default. Install certifi or supply root certificate bundle.
  • elasticsearch.trace logger now also logs failed requests, signature of internal logging method log_request_fail has changed, all custom connection classes need to be updated
  • added headers arg to connections to support custom http headers
  • passing in a keyword parameter with None as value will cause that param to be ignored

2.4.0 (2016-08-17)

  • ping now ignores all TransportError exceptions and just returns False
  • expose scroll_id on ScanError
  • increase default size for scan helper to 1000
  • Internal: changed Transport.perform_request to just return the body, not status as well.

2.3.0 (2016-02-29)

  • added client_key argument to configure client certificates
  • debug logging now includes response body even for failed requests

2.2.0 (2016-01-05)

  • Due to change in json encoding the client will no longer mask issues with encoding - if you work with non-ascii data in python 2 you must use the unicode type or have proper encoding set in your environment.
  • adding additional options for ssh - ssl_assert_hostname and ssl_assert_fingerprint to the default connection class
  • fix sniffing

2.1.0 (2015-10-19)

  • move multiprocessing import inside parallel bulk for Google App Engine

2.0.0 (2015-10-14)

  • Elasticsearch 2.0 compatibility release

1.8.0 (2015-10-14)

  • removed thrift and memcached connections, if you wish to continue using those, extract the classes and use them separately.
  • added a new, parallel version of the bulk helper using thread pools
  • In helpers, removed bulk_index as an alias for bulk. Use bulk instead.

1.7.0 (2015-09-21)

  • elasticsearch 2.0 compatibility
  • thrift now deprecated, to be removed in future version
  • make sure urllib3 always uses keep-alive

1.6.0 (2015-06-10)

  • Add indices.flush_synced API
  • helpers.reindex now supports reindexing parent/child documents

1.5.0 (2015-05-18)

  • Add support for query_cache parameter when searching
  • helpers have been made more secure by changing defaults to raise an exception on errors
  • removed deprecated options replication and the deprecated benchmark api.
  • Added AddonClient class to allow for extending the client from outside

1.4.0 (2015-02-11)

  • Using insecure SSL configuration (verify_cert=False) raises a warning
  • reindex accepts a query parameter
  • enable reindex helper to accept any kwargs for underlying bulk and scan calls
  • when doing an initial sniff (via sniff_on_start) ignore special sniff timeout
  • option to treat TransportError as normal failure in bulk helpers
  • fixed an issue with sniffing when only a single host was passed in

1.3.0 (2014-12-31)

  • Timeout now doesn’t trigger a retry by default (can be overriden by setting retry_on_timeout=True)
  • Introduced new parameter retry_on_status (defaulting to (503, 504)) controls which http status code should lead to a retry.
  • Implemented url parsing according to RFC-1738
  • Added support for proper SSL certificate handling
  • Required parameters are now checked for non-empty values
  • ConnectionPool now checks if any connections were defined
  • DummyConnectionPool introduced when no load balancing is needed (only one connection defined)
  • Fixed a race condition in ConnectionPool

1.2.0 (2014-08-03)

  • Compatibility with newest (1.3) Elasticsearch APIs.
  • Filter out master-only nodes when sniffing
  • Improved docs and error messages

1.1.1 (2014-07-04)

  • Bugfix release fixing escaping issues with request_timeout.

1.1.0 (2014-07-02)

  • Compatibility with newest Elasticsearch APIs.
  • Test helpers - ElasticsearchTestCase and get_test_client for use in your tests
  • Python 3.2 compatibility
  • Use simplejson if installed instead of stdlib json library
  • Introducing a global request_timeout parameter for per-call timeout
  • Bug fixes

1.0.0 (2014-02-11)

  • Elasticsearch 1.0 compatibility. See 0.4.X releases (and 0.4 branch) for code compatible with 0.90 elasticsearch.
  • major breaking change - compatible with 1.0 elasticsearch releases only!
  • Add an option to change the timeout used for sniff requests (sniff_timeout).
  • empty responses from the server are now returned as empty strings instead of None
  • get_alias now has name as another optional parameter due to issue #4539 in es repo. Note that the order of params have changed so if you are not using keyword arguments this is a breaking change.

0.4.4 (2013-12-23)

  • helpers.bulk_index renamed to helpers.bulk (alias put in place for backwards compatibility, to be removed in future versions)
  • Added helpers.streaming_bulk to consume an iterator and yield results per operation
  • helpers.bulk and helpers.streaming_bulk are no longer limited to just index operations.
  • unicode body (for incices.analyze for example) is now handled correctly
  • changed perform_request on Connection classes to return headers as well. This is a backwards incompatible change for people who have developed their own connection class.
  • changed deserialization mechanics. Users who provided their own serializer that didn’t extend JSONSerializer need to specify a mimetype class attribute.
  • minor bug fixes

0.4.3 (2013-10-22)

  • Fixes to helpers.bulk_index, better error handling
  • More benevolent hosts argument parsing for Elasticsearch
  • requests no longer required (nor recommended) for install

0.4.2 (2013-10-08)

  • ignore param accepted by all APIs
  • Fixes to helpers.bulk_index

0.4.1 (2013-09-24)

  • Initial release.