集成

编辑

您可以在此页面找到集成选项和相关信息。

OpenTelemetry instrumentation

编辑

Python Elasticsearch 客户端支持原生的 OpenTelemetry instrumentation,遵循 OpenTelemetry Elasticsearch 语义约定。有关详细信息,请参阅使用 OpenTelemetry页面。

ES|QL

编辑

ES|QL 可通过 Python Elasticsearch 客户端使用。请参阅ES|QL 和 Pandas页面,了解更多关于如何将 ES|QL 和 Pandas 与数据帧一起使用的信息。

传输

编辑

连接、重试和池的处理由 Elastic Transport Python 库处理。有关底层类的文档,请参阅 Read the Docs

使用不透明 ID 跟踪请求

编辑

您可以使用标识符字符串来丰富您对 Elasticsearch 的请求,这样您就可以在弃用日志中找到此标识符,从而帮助您识别搜索慢日志的来源或帮助您识别正在运行的任务

不透明 ID 可以通过客户端的 .options() 方法使用 opaque_id 参数进行设置

client = Elasticsearch(...)
client.options(opaque_id="request-id-...").search(...)

类型提示

编辑

elasticsearch-py v7.10.0 开始,该库现在附带 类型提示,并支持使用诸如 MypyPyright 等工具进行基本的静态类型分析。

如果我们编写一个脚本,其中存在类型错误,例如将 request_timeoutstr 参数而不是 float 参数一起使用,然后在脚本上运行 Mypy

# script.py
from elasticsearch import Elasticsearch

client = Elasticsearch(...)
client.options(
    request_timeout="5"  # type error!
).search(...)

# $ mypy script.py
# script.py:5: error: Argument "request_timeout" to "search" of "Elasticsearch" has
#                     incompatible type "str"; expected "Union[int, float, None]"
# Found 1 error in 1 file (checked 1 source file)

类型提示还允许诸如 IDE 之类的工具检查类型并提供更好的自动完成功能。