Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add mappings and bulk to quickstart page #2417

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
48 changes: 42 additions & 6 deletions docs/sphinx/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ You can generate an API key on the **Management** page under Security.

.. image:: ../guide/images/create-api-key.png

Confirm that the connection was successful.

.. code-block:: python

print(client.info())

Using the client
----------------
Expand All @@ -49,16 +54,30 @@ Time to use Elasticsearch! This section walks you through the most important
operations of Elasticsearch. The following examples assume that the Python
client was instantiated as above.

Create an index with mappings
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Creating an index
^^^^^^^^^^^^^^^^^

This is how you create the `my_index` index:
This is how you create the `my_index` index.
Optionally, you can first define the expected types of your features with a custom mapping.

.. code-block:: python

client.indices.create(index="my_index")

mappings = {
"properties": {
"foo": {"type": "text"},
"bar": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256,
}
},
},
}
}

client.indices.create(index="my_index", mappings=mappings)

Indexing documents
^^^^^^^^^^^^^^^^^^
Expand All @@ -76,6 +95,23 @@ This indexes a document with the index API:
},
)

You can also index multiple documents at once with the bulk helper function:

.. code-block:: python

from elasticsearch import helpers

def generate_docs():
for i in range(10):
yield {
"_index": "my_index",
"foo": f"foo {i}",
"bar": "bar",
}

helpers.bulk(client, generate_docs())

These helpers are the recommended way to perform bulk ingestion. While it is also possible to perform bulk ingestion using ``client.bulk`` directly, the helpers handle retries, ingesting chunk by chunk and more. See the :ref:`helpers` page for more details.

Getting documents
^^^^^^^^^^^^^^^^^
Expand Down