diff --git a/.ci/test-matrix.yml b/.ci/test-matrix.yml index 0dc75979b..29c587cb3 100644 --- a/.ci/test-matrix.yml +++ b/.ci/test-matrix.yml @@ -1,5 +1,5 @@ STACK_VERSION: - - "8.9.0-SNAPSHOT" + - "8.10.0-SNAPSHOT" TEST_SUITE: - platinum diff --git a/.github/workflows/unified-release.yml b/.github/workflows/unified-release.yml index bea1ea31b..149918654 100644 --- a/.github/workflows/unified-release.yml +++ b/.github/workflows/unified-release.yml @@ -17,7 +17,7 @@ jobs: name: Assemble runs-on: ubuntu-latest env: - STACK_VERSION: "8.9-SNAPSHOT" + STACK_VERSION: "8.10-SNAPSHOT" steps: - name: Checkout uses: actions/checkout@v2 diff --git a/docs/guide/getting-started.asciidoc b/docs/guide/getting-started.asciidoc new file mode 100644 index 000000000..4fd275aa0 --- /dev/null +++ b/docs/guide/getting-started.asciidoc @@ -0,0 +1,153 @@ +[[getting-started-python]] +== Getting started + +This page guides you through the installation process of the Python client, +shows you how to instantiate the client, and how to perform basic Elasticsearch +operations with it. + +[discrete] +=== Requirements + +* https://www.python.org/[Python] 3.6 or newer +* https://pip.pypa.io/en/stable/[`pip`], installed by default alongside Python + +[discrete] +=== Installation + +To install the latest version of the client, run the following command: + +[source,shell] +-------------------------- +python -m pip install elasticsearch +-------------------------- + +Refer to the <> page to learn more. + + +[discrete] +=== Connecting + +You can connect to the Elastic Cloud using an API key and the Elasticsearch +endpoint. + +[source,py] +---- +from elasticsearch import Elasticsearch + +client = Elasticsearch( + "https://...", # Elasticsearch endpoint + api_key=('api-key-id', 'api-key-secret'), # API key ID and secret +) +---- + +Your Elasticsearch endpoint can be found on the **My deployment** page of your +deployment: + +image::images/es-endpoint.jpg[alt="Finding Elasticsearch endpoint",align="center"] + +You can generate an API key on the **Management** page under Security. + +image::images/create-api-key.png[alt="Create API key",align="center"] + +For other connection options, refer to the <> section. + + +[discrete] +=== Operations + +Time to use Elasticsearch! This section walks you through the basic, and most +important, operations of Elasticsearch. For more operations and more advanced +examples, refer to the <> page. + + +[discrete] +==== Creating an index + +This is how you create the `my_index` index: + +[source,py] +---- +client.indices.create(index="my_index") +---- + + +[discrete] +==== Indexing documents + +This is a simple way of indexing a document: + +[source,py] +---- +client.index( + index="my_index", + id="my_document_id", + document={ + "foo": "foo", + "bar": "bar", + } +) +---- + + +[discrete] +==== Getting documents + +You can get documents by using the following code: + +[source,py] +---- +client.get(index="my_index", id="my_document_id") +---- + + +[discrete] +==== Searching documents + +This is how you can create a single match query with the Python client: + +[source,py] +---- +client.search(index="my_index", query={ + "match": { + "foo": "foo" + } +}) +---- + + +[discrete] +==== Updating documents + +This is how you can update a document, for example to add a new field: + +[source,py] +---- +client.update(index="my_index", id="my_document_id", doc={ + "foo": "bar", + "new_field": "new value", +}) +---- + + +[discrete] +==== Deleting documents + +[source,py] +---- +client.delete(index="my_index", id="my_document_id") +---- + + +[discrete] +==== Deleting an index + +[source,py] +---- +client.indices.delete(index="my_index") +---- + + +[discrete] +== Further reading + +* Use <> for a more comfortable experience with the APIs. diff --git a/docs/guide/images/create-api-key.png b/docs/guide/images/create-api-key.png new file mode 100644 index 000000000..d75c23030 Binary files /dev/null and b/docs/guide/images/create-api-key.png differ diff --git a/docs/guide/images/es-endpoint.jpg b/docs/guide/images/es-endpoint.jpg new file mode 100644 index 000000000..6da2e7565 Binary files /dev/null and b/docs/guide/images/es-endpoint.jpg differ diff --git a/docs/guide/index.asciidoc b/docs/guide/index.asciidoc index 85f6eab6e..d2ae4ab63 100644 --- a/docs/guide/index.asciidoc +++ b/docs/guide/index.asciidoc @@ -8,6 +8,8 @@ include::{asciidoc-dir}/../../shared/attributes.asciidoc[] include::overview.asciidoc[] +include::getting-started.asciidoc[] + include::installation.asciidoc[] include::connecting.asciidoc[] diff --git a/elasticsearch/_async/helpers.py b/elasticsearch/_async/helpers.py index 6e05bc9fc..9212d089b 100644 --- a/elasticsearch/_async/helpers.py +++ b/elasticsearch/_async/helpers.py @@ -137,7 +137,7 @@ def aiter(x: Union[Iterable[T], AsyncIterable[T]]) -> AsyncIterator[T]: async def f() -> AsyncIterable[T]: nonlocal x - ix: Iterable[T] = x # type: ignore[assignment] + ix: Iterable[T] = x for item in ix: yield item diff --git a/elasticsearch/_version.py b/elasticsearch/_version.py index df203692f..36d1fe996 100644 --- a/elasticsearch/_version.py +++ b/elasticsearch/_version.py @@ -15,4 +15,4 @@ # specific language governing permissions and limitations # under the License. -__versionstr__ = "8.9.0" +__versionstr__ = "8.10.0"