Skip to content

Latest commit

 

History

History
164 lines (125 loc) · 4.2 KB

clients-python-getting-started.asciidoc

File metadata and controls

164 lines (125 loc) · 4.2 KB

Get started with the Python client

This page guides you through the installation process of the Python client, shows you how to initialize the client, and how to perform basic {es} operations with it.

See the Python client documentation for more detailed usage instructions.

Note

The same client is used for {es3}, on-premise and managed Elasticsearch. Some API endpoints are however not available in {es3}.

Requirements

  • Python 3.9 or higher

  • pip

Documentation

Find the full documentation for the Python client on readthedocs.

Installation

Using the command line

You can install the Python client with the following commands:

python -m pip install elasticsearch

Initialize the client

Initialize the client using your API key and {es} endpoint:

from elasticsearch import Elasticsearch

client = Elasticsearch(
    "https://...",  # Your project's Elasticsearch endpoint
    api_key='api-key',  # API key for your project
)

To get API keys for the {es} endpoint for a project, see [elasticsearch-get-started].

Using the API

After you’ve initialized the client, you can start ingesting documents. You can use the bulk API for this. This API enables you to index, update, and delete several documents in one request.

Creating an index and ingesting documents

You can call the bulk API with a body parameter, an array of hashes that define the action, and a document.

The following is an example of indexing some classic books into the books index:

from datetime import datetime

client.bulk(
    body=[
        {"index": {"_index": "books", "_id": "1"}},
        {"title": "Infinite Jest", "author": "David Foster Wallace", "published_on": datetime(1996, 2, 1)},
        {"index": {"_index": "books", "_id": "2"}},
        {"title": "Ulysses", "author": "James Joyce", "published_on": datetime(1922, 2, 2)},
        {"index": {"_index": "books", "_id": "3"}},
        {"title": "Just Kids", "author": "Patti Smith", "published_on": datetime(2010, 1, 19)},
    ],
)

Getting documents

You can get documents by using the following code:

response = client.get(index="books", id="1")
print(response.body)

Searching

Now that some data is available, you can search your documents using the search API:

response = client.search(index="books", query={
    "match": {
        "title": "infinite"
    }
})

for hit in response["hits"]["hits"]:
    print(hit["_source"])

Updating a document

You can call the update API to update a document:

client.update(index="books", id="2", doc={
    "author": "James Augustine Aloysius Joyce",
    "pages": 732,
})

Deleting a document

You can call the delete API to delete a document:

client.delete(index="books", id="3")

Deleting an index

client.indices.delete(index="books")