Skip to content

Latest commit

 

History

History
309 lines (204 loc) · 5.84 KB

api.rst

File metadata and controls

309 lines (204 loc) · 5.84 KB

API Documentation

All the API calls map the raw REST api as closely as possible, including the distinction between required and optional arguments to the calls. This means that the code makes distinction between positional and keyword arguments; we, however, recommend that people use keyword arguments for all calls for consistency and safety.

Note

for compatibility with the Python ecosystem we use from_ instead of from and doc_type instead of type as parameter names.

Global Options

Some parameters are added by the client itself and can be used in all API calls.

Ignore

An API call is considered successful (and will return a response) if elasticsearch returns a 2XX response. Otherwise an instance of ~elasticsearch.TransportError (or a more specific subclass) will be raised. You can see other exception and error states in exceptions. If you do not wish an exception to be raised you can always pass in an ignore parameter with either a single status code that should be ignored or a list of them:

from elasticsearch import Elasticsearch
es = Elasticsearch()

# ignore 400 cause by IndexAlreadyExistsException when creating an index
es.indices.create(index='test-index', ignore=400)

# ignore 404 and 400
es.indices.delete(index='test-index', ignore=[400, 404])

Timeout

Global timeout can be set when constructing the client (see ~elasticsearch.Connection's timeout parameter) or on a per-request basis using request_timeout (float value in seconds) as part of any API call, this value will get passed to the perform_request method of the connection class:

# only wait for 1 second, regardless of the client's default
es.cluster.health(wait_for_status='yellow', request_timeout=1)

Note

Some API calls also accept a timeout parameter that is passed to Elasticsearch server. This timeout is internal and doesn't guarantee that the request will end in the specified time.

Tracking Requests with Opaque ID

You can enrich your requests against Elasticsearch with an identifier string, that allows you to discover this identifier in deprecation logs, to support you with identifying search slow log origin or to help with identifying running tasks.

from elasticsearch import Elasticsearch

client = Elasticsearch()

# You can apply X-Opaque-Id in any API request via 'opaque_id':
resp = client.get(index="test", id="1", opaque_id="request-1")

Response Filtering

The filter_path parameter is used to reduce the response returned by elasticsearch. For example, to only return _id and _type, do:

es.search(index='test-index', filter_path=['hits.hits._id', 'hits.hits._type'])

It also supports the * wildcard character to match any field or part of a field's name:

es.search(index='test-index', filter_path=['hits.hits._*'])

Elasticsearch

Elasticsearch

AsyncSearchClient

Autoscaling

AutoscalingClient

Cat

CatClient

Cross-Cluster Replication (CCR)

CcrClient

Cluster

ClusterClient

Dangling Indices

DanglingIndicesClient

Enrich Policies

EnrichClient

Event Query Language (EQL)

EqlClient

Snapshottable Features

FeaturesClient

Fleet

FleetClient

Graph Explore

GraphClient

Index Lifecycle Management (ILM)

IlmClient

Indices

IndicesClient

Ingest Pipelines

IngestClient

License

LicenseClient

Logstash

LogstashClient

Migration

MigrationClient

Machine Learning (ML)

MlClient

Monitoring

MonitoringClient

Nodes

NodesClient

Rollup Indices

RollupClient

Searchable Snapshots

SearchableSnapshotsClient

Security

SecurityClient

Shutdown

ShutdownClient

Snapshot Lifecycle Management (SLM)

SlmClient

Snapshots

SnapshotClient

SQL

SqlClient

TLS/SSL

SslClient

Tasks

TasksClient

Text Structure

TextStructureClient

Transforms

TransformClient

Watcher

WatcherClient

X-Pack

XPackClient