快速入门

本指南介绍如何安装 Elasticsearch Python 客户端以及如何执行索引或搜索文档等基本操作。

要求

安装

要安装客户端,请运行以下命令

$ python -m pip install elasticsearch

连接

您可以使用 API 密钥和云 ID 连接到 Elastic Cloud。

from elasticsearch import Elasticsearch

client = Elasticsearch(cloud_id="YOUR_CLOUD_ID", api_key="YOUR_API_KEY")

您可以在部署的“我的部署”页面上的“云 ID”下找到您的云 ID。

您可以在“管理”页面上的“安全”下生成 API 密钥。

_images/create-api-key.png

确认连接成功。

print(client.info())

使用客户端

是时候使用 Elasticsearch 了!本节将带您了解 Elasticsearch 的最重要操作。以下示例假设 Python 客户端已如上所述实例化。

使用映射创建索引

以下是创建“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)

索引文档

这将使用索引 API 索引文档

client.index(
    index="my_index",
    id="my_document_id",
    document={
        "foo": "foo",
        "bar": "bar",
    },
)

您还可以使用批量辅助函数一次索引多个文档

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())

这些辅助函数是执行批量摄取的推荐方法。虽然也可以使用 client.bulk 直接执行批量摄取,但辅助函数可以处理重试、逐块摄取等等。有关更多详细信息,请参阅辅助函数页面。

获取文档

您可以使用以下代码获取文档

client.get(index="my_index", id="my_document_id")

搜索文档

以下是使用 Python 客户端创建单个匹配查询的方法

client.search(index="my_index", query={"match": {"foo": {"query": "foo"}}})

更新文档

以下是更新文档的方法,例如添加新字段

client.update(
    index="my_index",
    id="my_document_id",
    doc={
        "foo": "bar",
        "new_field": "new value",
    },
)

删除文档

client.delete(index="my_index", id="my_document_id")

删除索引

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