Transport classes

List of transport classes that can be used, simply import your choice and pass it to the constructor of Elasticsearch as connection_class. Note that the RequestsHttpConnection requires requests to be installed.

For example to use the requests-based connection just import it and use it:

from elasticsearch import Elasticsearch, RequestsHttpConnection
es = Elasticsearch(connection_class=RequestsHttpConnection)

Connection

class elasticsearch.connection.Connection(host='localhost', port=9200, url_prefix='', timeout=10, **kwargs)

Class responsible for maintaining a connection to an Elasticsearch node. It holds persistent connection pool to it and it’s main interface (perform_request) is thread-safe.

Also responsible for logging.

Parameters:
  • host – hostname of the node (default: localhost)
  • port – port to use (integer, default: 9200)
  • url_prefix – optional url prefix for elasticsearch
  • timeout – default timeout in seconds (float, default: 10)

Urllib3HttpConnection

class elasticsearch.connection.Urllib3HttpConnection(host='localhost', port=9200, http_auth=None, use_ssl=False, verify_certs=False, ca_certs=None, client_cert=None, ssl_version=None, ssl_assert_hostname=None, ssl_assert_fingerprint=None, maxsize=10, **kwargs)

Default connection class using the urllib3 library and the http protocol.

Parameters:
  • host – hostname of the node (default: localhost)
  • port – port to use (integer, default: 9200)
  • url_prefix – optional url prefix for elasticsearch
  • timeout – default timeout in seconds (float, default: 10)
  • http_auth – optional http auth information as either ‘:’ separated string or a tuple
  • use_ssl – use ssl for the connection if True
  • verify_certs – whether to verify SSL certificates
  • ca_certs – optional path to CA bundle. See http://urllib3.readthedocs.org/en/latest/security.html#using-certifi-with-urllib3 for instructions how to get default set
  • client_cert – path to the file containing the private key and the certificate
  • ssl_version – version of the SSL protocol to use. Choices are: SSLv23 (default) SSLv2 SSLv3 TLSv1 (see PROTOCOL_* constants in the ssl module for exact options for your environment).
  • ssl_assert_hostname – use hostname verification if not False
  • ssl_assert_fingerprint – verify the supplied certificate fingerprint if not None
  • maxsize – the maximum number of connections which will be kept open to this host.

RequestsHttpConnection

class elasticsearch.connection.RequestsHttpConnection(host='localhost', port=9200, http_auth=None, use_ssl=False, verify_certs=False, ca_certs=None, client_cert=None, **kwargs)

Connection using the requests library.

Parameters:
  • http_auth – optional http auth information as either ‘:’ separated string or a tuple. Any value will be passed into requests as auth.
  • use_ssl – use ssl for the connection if True
  • verify_certs – whether to verify SSL certificates
  • ca_certs – optional path to CA bundle. By default standard requests’ bundle will be used.
  • client_cert – path to the file containing the private key and the certificate