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)
The default connection class is based on urllib3
which is more performant
and lightweight than the optional requests
-based class. Only use
RequestsHttpConnection
if you have need of any of requests
advanced
features like custom auth plugins etc.
Product check and unsupported distributions¶
Starting in v7.14.0 the client performs a required product check before the first API call is executed. This product check allows the client to establish that it’s communicating with a supported Elasticsearch cluster.
For 8.x clients the product check will verify that the X-Elastic-Product: Elasticsearch
HTTP header is being sent with every response. If the client detects that it’s not connected
to a supported distribution of Elasticsearch the UnsupportedProductError
exception
will be raised.
Connection¶
-
class
elasticsearch.connection.
Connection
(host='localhost', port=None, use_ssl=False, url_prefix='', timeout=10, headers=None, http_compress=None, cloud_id=None, api_key=None, opaque_id=None, meta_header=True, **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)
- use_ssl – use ssl for the connection if True
- url_prefix – optional url prefix for elasticsearch
- timeout – default timeout in seconds (float, default: 10)
- http_compress – Use gzip compression
- cloud_id – The Cloud ID from ElasticCloud. Convenient way to connect to cloud instances.
- opaque_id – Send this value in the ‘X-Opaque-Id’ HTTP header For tracing all requests made by this transport.
Urllib3HttpConnection¶
-
class
elasticsearch.connection.
Urllib3HttpConnection
(host='localhost', port=None, http_auth=None, use_ssl=False, verify_certs=<object object>, ssl_show_warn=<object object>, ca_certs=None, client_cert=None, client_key=None, ssl_version=None, ssl_assert_hostname=None, ssl_assert_fingerprint=None, maxsize=10, headers=None, ssl_context=None, http_compress=None, cloud_id=None, api_key=None, opaque_id=None, **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
- ssl_show_warn – show warning when verify certs is disabled
- ca_certs – optional path to CA bundle. See https://urllib3.readthedocs.io/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, or cert only if using client_key
- client_key – path to the file containing the private key if using separate cert and key files (client_cert will contain only the cert)
- ssl_version – version of the SSL protocol to use. Choices are:
SSLv23 (default) SSLv2 SSLv3 TLSv1 (see
PROTOCOL_*
constants in thessl
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 number of connections which will be kept open to this host. See https://urllib3.readthedocs.io/en/1.4/pools.html#api for more information.
- headers – any custom http headers to be add to requests
- http_compress – Use gzip compression
- cloud_id – The Cloud ID from ElasticCloud. Convenient way to connect to cloud instances. Other host connection params will be ignored.
- api_key – optional API Key authentication as either base64 encoded string or a tuple.
- opaque_id – Send this value in the ‘X-Opaque-Id’ HTTP header For tracing all requests made by this transport.
RequestsHttpConnection¶
-
class
elasticsearch.connection.
RequestsHttpConnection
(host='localhost', port=None, http_auth=None, use_ssl=False, verify_certs=True, ssl_show_warn=True, ca_certs=None, client_cert=None, client_key=None, headers=None, http_compress=None, cloud_id=None, api_key=None, opaque_id=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
- ssl_show_warn – show warning when verify certs is disabled
- 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, or cert only if using client_key
- client_key – path to the file containing the private key if using separate cert and key files (client_cert will contain only the cert)
- headers – any custom http headers to be add to requests
- http_compress – Use gzip compression
- cloud_id – The Cloud ID from ElasticCloud. Convenient way to connect to cloud instances. Other host connection params will be ignored.
- api_key – optional API Key authentication as either base64 encoded string or a tuple.
- opaque_id – Send this value in the ‘X-Opaque-Id’ HTTP header For tracing all requests made by this transport.