Python SDK

最近更新时间:2024-12-30 14:37:43

我的收藏
本文介绍通过 Python SDK 将数据投递到 Elasticsearch Serverless 服务中的相关操作。

前提条件

已创建 serverless 空间及索引, 获取内网访问地址、用户名密码、索引名等信息。
推荐安装 7.10.1 以上版本的 elasticsearch py 依赖库,可以安装最新版本,如下所示:
pip3 install elasticsearch

代码 demo

以下实例代码,功能为通过 Python SDK 写入 Elasticsearch Serverless 服务,并进行简单查询。
from datetime import datetime, timezone
from elasticsearch import Elasticsearch, helpers

# 创建一个Elasticsearch客户端实例,提供HTTP认证信息
es = Elasticsearch(
hosts=[
{
'host': 'space-12345678.ap-shanghai.qcloudes.com', # 替换为你的空间内网访问地址
'port': 80, # 替换为你的空间内网访问地址的端口号
'scheme': 'http', # 这里指定 scheme
}
],
http_auth=('elastic', 'xxxxxxxxxxx'), # 替换为你的空间用户名和密码
)

# 定义要索引的文档
docs = [
{
'_index': 'my_index',
# '_id': i,
'_source': {
'author': 'user',
'text': 'Hi! Elasticsearch Serverless!',
'@timestamp': datetime.now(timezone.utc),
}
}
for i in range(10) # 创建10个文档
]

# 使用bulk API索引文档
helpers.bulk(es, docs)

# 搜索文档, index替换为你的索引名称, body替换为你的查询语句
res = es.search(index="my_index", body={"query": {"match_all": {}}})
print("Got %d Hits:" % res['hits']['total']['value'])
for hit in res['hits']['hits']:
print("%(@timestamp)s %(author)s: %(text)s" % hit["_source"])