You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch Python客户端8.12.0:size参数正确用法及弃用警告解决

Elasticsearch Python客户端8.12.0中size参数的正确用法

你遇到的弃用警告是因为8.x版本的客户端不再允许同时通过body参数和独立参数(比如size)传递查询配置,有两种合规的写法:

方式一:将size融入body参数

把size直接添加到你的query字典中,然后只传递index和body参数:

# 直接在查询体中定义size
query = {
    "query": {
        # 你的查询逻辑,比如 match_all 或者其他条件
        "match_all": {}
    },
    "size": 50
}
es.search(index=source_index, body=query)

如果已经有现成的query字典,可以用字典合并的方式添加size:

query_with_size = {**query, "size": 50}
es.search(index=source_index, body=query_with_size)

方式二:使用显式参数传递(推荐)

从8.x版本开始,官方推荐直接将查询相关的参数作为独立keyword参数传入,不再使用body参数:

# 提取原query中的查询逻辑,搭配size参数
es.search(index=source_index, query=query["query"], size=50)

如果原body中还有其他配置(比如排序、聚合),也可以同样作为独立参数传递:

es.search(
    index=source_index,
    query=query["query"],
    size=50,
    sort=query.get("sort"),
    aggs=query.get("aggs")
)

两种方式都能避免弃用警告,方式二更贴合新版客户端的设计风格,后续版本会更稳定。

内容的提问来源于stack exchange,提问作者gbs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 07:34:56