Examples | Elastic Documentation (original) (raw)

Below you can find examples of how to use the most frequently called APIs with the Python client.

Indexing a document

To index a document, you need to specify three pieces of information: index, id, and a document:

from datetime import datetime
from elasticsearch import Elasticsearch
client = Elasticsearch('https://localhost:9200')

doc = {
    'author': 'author_name',
    'text': 'Interesting content...',
    'timestamp': datetime.now(),
}
resp = client.index(index="test-index", id=1, document=doc)
print(resp['result'])

Getting a document

To get a document, you need to specify its index and id:

resp = client.get(index="test-index", id=1)
print(resp['_source'])

Refreshing an index

You can perform the refresh operation on an index:

client.indices.refresh(index="test-index")

Searching for a document

The search() method returns results that are matching a query:

resp = client.search(index="test-index", query={"match_all": {}})
print("Got %d Hits:" % resp['hits']['total']['value'])
for hit in resp['hits']['hits']:
    print("%(timestamp)s %(author)s: %(text)s" % hit["_source"])

Updating a document

To update a document, you need to specify three pieces of information: index, id, and a doc:

from datetime import datetime
from elasticsearch import Elasticsearch

client = Elasticsearch('https://localhost:9200')

doc = {
    'author': 'author_name',
    'text': 'Interesting modified content...',
    'timestamp': datetime.now(),
}
resp = client.update(index="test-index", id=1, doc=doc)
print(resp['result'])

Deleting a document

You can delete a document by specifying its index, and id in the delete() method:

client.delete(index="test-index", id=1)

Interactive examples

The elasticsearch-labs repo contains interactive and executable Python notebooks, sample apps, and resources for testing out Elasticsearch, using the Python client. These examples are mainly focused on vector search, hybrid search and generative AI use cases, but you’ll also find examples of basic operations like creating index mappings and performing lexical search.

Search notebooks

The Search folder is a good place to start if you’re new to Elasticsearch. This folder contains a number of notebooks that demonstrate the fundamentals of Elasticsearch, like indexing vectors, running lexical, semantic and hybrid searches, and more.

The following notebooks are available:

Here’s a brief overview of what you’ll learn in each notebook.

Quick start

In the 00-quick-start.ipynb notebook you’ll learn how to:

Keyword, querying, filtering

In the 01-keyword-querying-filtering.ipynb notebook, you’ll learn how to:

In the 02-hybrid-search.ipynb notebook, you’ll learn how to:

Semantic search with ELSER

In the 03-ELSER.ipynb notebook, you’ll learn how to:

In the 04-multilingual.ipynb notebook, you’ll learn how to:

Query rules

In the 05-query-rules.ipynb notebook, you’ll learn how to:

Synonyms API quick start

In the 06-synonyms-api.ipynb notebook, you’ll learn how to:

Other notebooks