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


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