Skip to content

Commit 02b31d2

Browse files
committed
Revise and expand
1 parent 06f25a0 commit 02b31d2

File tree

1 file changed

+25
-12
lines changed

1 file changed

+25
-12
lines changed

docs/reference/index.md

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ navigation_title: "Python"
33
mapped_pages:
44
- https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/index.html
55
- https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/overview.html
6+
applies_to:
7+
stack: ga
8+
serverless: ga
69
---
710

811
# {{es}} Python client [overview]
@@ -11,7 +14,6 @@ This documentation covers the [official Python client for {{es}}](https://github
1114

1215
API reference documentation is provided on [Read the Docs](https://elasticsearch-py.readthedocs.io).
1316

14-
1517
The following example shows a simple Python client use case:
1618

1719
```python
@@ -30,9 +32,6 @@ The following example shows a simple Python client use case:
3032
{'any': 'data', 'timestamp': '2013-05-12T19:45:31.804229'}
3133
```
3234

33-
34-
35-
3635
## Features [_features]
3736

3837
The client's features include:
@@ -51,11 +50,11 @@ The client also provides a convenient set of [helpers](client-helpers.md) for ta
5150
To get started, try this walkthrough: [Ingest data with Python](docs-content://manage-data/ingest/ingesting-data-from-applications/ingest-data-with-python-on-elasticsearch-service.md)
5251
::::
5352

54-
### Elasticsearch Python DSL [_elasticsearch_python_dsl]
53+
### {{es}} Python DSL [_elasticsearch_python_dsl]
5554

5655
The [Python DSL module](../reference/elasticsearch-dsl.md) offers a convenient and idiomatic way to write and manipulate queries.
5756

58-
## {{es}} version compatibility [_compatibility]
57+
## Version compatibility
5958

6059
Language clients are **forward compatible**: each client version works with equivalent and later minor versions of the **same or next major** version of {{es}}. For full compatibility, the client and {{es}} minor versions should match.
6160

@@ -66,20 +65,34 @@ Language clients are **forward compatible**: each client version works with equi
6665

6766
Compatibility does not imply 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, but it does not support new {{es}} 8.13 features. An 8.13 client fully supports {{es}} 8.13 features.
6867

69-
{{es}} language clients are also **backward compatible** across minor versions, with default distributions and without guarantees.
68+
{{es}} language clients are also **backward compatible** across minor versions, with default distributions and without guarantees.
7069

71-
### Major version upgrades
70+
## Upgrade to a new major version
7271

7372
:::{important}
7473
To upgrade to a new major version, first [upgrade {{es}}](docs-content://deploy-manage/upgrade.md), then upgrade the Python client.
7574
:::
7675

77-
As of version 8.0, {{es}} offers a [compatibility mode](elasticsearch://reference/elasticsearch/rest-apis/compatibility.md) for smoother upgrades. In compatibility mode, you can upgrade your {{es}} cluster to the next major version while continuing to use your existing client during the transition.
76+
As of version 8.0, {{es}} offers a [REST API compatibility mode](elasticsearch://reference/elasticsearch/rest-apis/compatibility.md) for smoother upgrades. In compatibility mode, you can upgrade your {{es}} cluster to the next major version while continuing to use your existing client during the transition.
77+
78+
### How compatibility mode works
79+
80+
In the Python client, compatibility mode is **always enabled**. You don't need to configure it manually or set an environment variable. The client automatically sends compatibility headers with API requests so that it can communicate with the next major version of {{es}}.
7881

79-
For example, if you're upgrading {{es}} from 8.x to 9.x, you can continue to use the 8.x Python client during and after the {{es}} server upgrade, with the exception of [breaking changes](../release-notes/breaking-changes.md).
82+
In compatibility mode, your Python client applications can continue running during an upgrade without restart or redeployment. For example, during a rolling upgrade of your {{es}} cluster from 8.x to 9.x, your 8.x Python client continues working throughout the process without any changes or intervention.
8083

81-
In the Python client, compatibility mode is always enabled.
84+
**What to expect in compatibility mode:**
85+
86+
If you're using the Python client in compatibility mode to work with the next major version of {{es}}:
87+
88+
* API calls affected by [breaking changes](../release-notes/breaking-changes.md) might fail or behave differently.
89+
* API calls unaffected by breaking changes continue to work as expected.
90+
* New features from the next major version of {{es}} are not available until you upgrade the client itself.
91+
92+
Although compatibility mode allows your Python client to keep working without intervention, you should upgrade the client when feasible. Even if you don't need the newest {{es}} features, upgrading the client ensures you receive the latest bug fixes and improvements.
8293

8394
:::{tip}
8495
To support working with multiple client versions, the Python client is also released under the package names `elasticsearch8` and `elasticsearch9` (to prevent name collisions).
85-
:::
96+
:::
97+
98+
For guidance on upgrading your {{es}} deployment, refer to the [{{es}} upgrade documentation](docs-content://deploy-manage/upgrade.md) and [upgrade paths](docs-content://deploy-manage/upgrade.md#upgrade-paths).

0 commit comments

Comments
 (0)