Skip to content

Latest commit

 

History

History
63 lines (43 loc) · 2.08 KB

transports.rst

File metadata and controls

63 lines (43 loc) · 2.08 KB

Transport classes

List of transport classes that can be used, simply import your choice and pass it to the constructor of ~elasticsearch.Elasticsearch as connection_class. Note that the ~elasticsearch.connection.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 on first request

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.

The product check requires a single HTTP request to the info API. In most cases this request will succeed quickly and then no further product check HTTP requests will be sent.

The product check will verify that the X-Elastic-Product: Elasticsearch HTTP header is being sent or if the info API indicates a supported distribution of Elasticsearch.

If the client detects that it's not connected to a supported distribution of Elasticsearch the UnsupportedProductError exception will be raised. In previous versions of Elasticsearch the info API required additional permissions so if an authentication or authorization error is raised during the product check then an ElasticsearchWarning is raised and the client proceeds normally.

Connection

Connection

Urllib3HttpConnection

Urllib3HttpConnection

RequestsHttpConnection

RequestsHttpConnection