https://github.com/elastic/elasticsearch-py
Official Python client for Elasticsearch
https://github.com/elastic/elasticsearch-py
client elasticsearch python search
Last synced: about 2 hours ago
JSON representation
Official Python client for Elasticsearch
- Host: GitHub
- URL: https://github.com/elastic/elasticsearch-py
- Owner: elastic
- License: apache-2.0
- Created: 2013-05-01T22:47:39.000Z (about 12 years ago)
- Default Branch: main
- Last Pushed: 2025-05-05T06:03:27.000Z (about 14 hours ago)
- Last Synced: 2025-05-05T17:31:55.589Z (about 2 hours ago)
- Topics: client, elasticsearch, python, search
- Language: Python
- Homepage: https://ela.st/es-python
- Size: 12.8 MB
- Stars: 4,293
- Watchers: 417
- Forks: 1,192
- Open Issues: 55
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-elastic-resources - Link
- awesome-list - Elasticsearch Python Client - Official Elasticsearch client library for Python (Data Management & Processing / Database & Cloud Management)
- best-of-python - GitHub - 5% open · ⏱️ 06.06.2024): (Database Clients)
README
![]()
# Elasticsearch Python Client
*The official Python client for Elasticsearch.*
## Features
* Translating basic Python data types to and from JSON
* Configurable automatic discovery of cluster nodes
* Persistent connections
* Load balancing (with pluggable selection strategy) across available nodes
* Failed connection penalization (time based - failed connections won't be
retried until a timeout is reached)
* Support for TLS and HTTP authentication
* Thread safety across requests
* Pluggable architecture
* Helper functions for idiomatically using APIs together## Installation
[Download the latest version of Elasticsearch](https://www.elastic.co/downloads/elasticsearch)
or
[sign-up](https://cloud.elastic.co/registration?elektra=en-ess-sign-up-page)
for a free trial of Elastic Cloud.Refer to the [Installation section](https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/getting-started-python.html#_installation)
of the getting started documentation.## Connecting
Refer to the [Connecting section](https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/getting-started-python.html#_connecting)
of the getting started documentation.## Usage
-----* [Creating an index](https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/getting-started-python.html#_creating_an_index)
* [Indexing a document](https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/getting-started-python.html#_indexing_documents)
* [Getting documents](https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/getting-started-python.html#_getting_documents)
* [Searching documents](https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/getting-started-python.html#_searching_documents)
* [Updating documents](https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/getting-started-python.html#_updating_documents)
* [Deleting documents](https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/getting-started-python.html#_deleting_documents)
* [Deleting an index](https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/getting-started-python.html#_deleting_an_index)## Compatibility
Language clients are _forward compatible:_ each client version works with equivalent and later minor versions of Elasticsearch without breaking.
Compatibility does not imply full feature parity. New Elasticsearch features are supported only in equivalent client versions. For example, an 8.12 client fully supports Elasticsearch 8.12 features and works with 8.13 without breaking; however, it does not support new Elasticsearch 8.13 features. An 8.13 client fully supports Elasticsearch 8.13 features.
| Elasticsearch version | elasticsearch-py branch |
| --- | --- |
| main | main |
| 9.x | 9.x |
| 9.x | 8.x |
| 8.x | 8.x |Elasticsearch 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 Elasticsearch, then upgrade the Python Elasticsearch client.If you need to work with multiple client versions, note that older versions are also released as `elasticsearch7` and `elasticsearch8`.
## Documentation
Documentation for the client is [available on elastic.co] and [Read the Docs].
[available on elastic.co]: https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/index.html
[Read the Docs]: https://elasticsearch-py.readthedocs.io## License
This software is licensed under the [Apache License 2.0](./LICENSE). See [NOTICE](./NOTICE).