Skip to content

Latest commit

 

History

History
76 lines (50 loc) · 3.06 KB

index.md

File metadata and controls

76 lines (50 loc) · 3.06 KB
mapped_pages

Python [overview]

This is the official low-level Python client for {{es}}. Its goal is to provide common ground for all {{es}}-related code in Python. For this reason, the client is designed to be unopinionated and extendable. An API reference is available on Read the Docs.

Example use [_example_use]

Simple use-case:

>>> from datetime import datetime
>>> from elasticsearch import Elasticsearch

# Connect to 'http://localhost:9200'
>>> client = Elasticsearch("http://localhost:9200")

# Datetimes will be serialized:
>>> client.index(index="my-index-000001", id=42, document={"any": "data", "timestamp": datetime.now()})
{'_id': '42', '_index': 'my-index-000001', '_type': 'test-type', '_version': 1, 'ok': True}

# ...but not deserialized
>>> client.get(index="my-index-000001", id=42)['_source']
{'any': 'data', 'timestamp': '2013-05-12T19:45:31.804229'}

::::{tip} For an elaborate example of how to ingest data into Elastic Cloud, refer to this page. ::::

Features [_features]

The client’s features include:

  • Translating basic Python data types to and from JSON
  • Configurable automatic discovery of cluster nodes
  • Persistent connections
  • Load balancing (with pluggable selection strategy) across all available nodes
  • Node timeouts on transient errors
  • Thread safety
  • Pluggable architecture

The client also contains a convenient set of helpers for some of the more engaging tasks like bulk indexing and reindexing.

Elasticsearch Python DSL [_elasticsearch_python_dsl]

For a higher level access with more limited scope, have a look at the DSL module, which provides a more convenient and idiomatic way to write and manipulate queries.

Compatibility [_compatibility]

Language clients are forward compatible: each client version works with equivalent and later minor versions of {{es}} without breaking.

Compatibility does not imply full feature parity. New {{es}} features are supported only in equivalent client versions. For example, an 8.12 client fully supports {{es}} 8.12 features and works with 8.13 without breaking; however, it does not support new {{es}} 8.13 features. An 8.13 client fully supports {{es}} 8.13 features.

Elasticsearch version elasticsearch-py branch
main main
9.x 9.x
9.x 8.x
8.x 8.x

{{es}} language clients are also backward compatible across minor versions — with default distributions and without guarantees.

:::{tip} To upgrade to a new major version, first upgrade {{es}}, then upgrade the Python {{es}} client. :::

If you need to work with multiple client versions, note that older versions are also released as elasticsearch7 and elasticsearch8.