快速入门
本指南介绍如何安装 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 密钥。
确认连接成功。
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")