Elasticsearch 6.2.0 Python客户端size参数失效,始终返回10条文档
问题排查与解决
可能的原因1:未指定目标索引
你的curl查询肯定明确指定了要查询的索引(比如curl -XGET 'https://your-opensearch-endpoint/your_index/_search'),但Python代码里的search方法没有传入index参数,导致客户端查询了默认索引或其他无关索引,而这些索引中匹配结果刚好只有10条。
解决办法:在search方法中添加index参数指定目标索引:
response = self.es.search(index="你的目标索引名称", body=body)
可能的原因2:客户端与服务端版本不兼容
你使用的是Elasticsearch 6.2.0的Python客户端,而Amazon OpenSearch 1.1兼容的是Elasticsearch 7.10.x版本,版本跨度太大可能导致参数解析异常,比如body中的size参数被客户端忽略,直接使用了默认值10。
解决办法:
- 推荐使用官方的OpenSearch Python客户端
opensearch-py,安装命令:
客户端初始化示例(根据你的实际配置调整):pip install opensearch-pyfrom opensearchpy import OpenSearch self.es = OpenSearch( hosts=[{'host': '你的OpenSearch端点', 'port': 443}], use_ssl=True, verify_certs=True, http_auth=('用户名', '密码') ) - 也可以升级到Elasticsearch 7.10.x的Python客户端(OpenSearch 1.1与ES 7.10客户端大部分功能兼容)。
其他排查点
检查你封装的self.es客户端初始化代码,是否有设置全局默认的size参数(比如某些自定义封装会默认限制返回10条),如果有则调整该配置。
内容的提问来源于stack exchange,提问作者AlanSwansea
相关产品推荐
相关产品推荐

