python - 无法理解 Elasticsearch Scroll 文档
问题描述
所以我使用 Python 3.8 和 Requests lib 来帮助我对 ES 7.4.2 进行 RESTful API 调用。查看Scroll的 ES 文档,它指出:
初始搜索请求应在查询字符串中指定滚动参数,该参数告诉 Elasticsearch 应将“搜索上下文”保持多长时间
所以这是我打的第一个电话。
requests.post("http://127.0.0.1:9200/paulk/_search?scroll=1m, headers={'Content-type': 'application/json'}, data=json.dumps({"size": 100, "query": {"match_all": {}}}))
这将返回 200 并且一切都在预期中,但是。根据documentationf或第二次也是最后一次调用,它指出:
上述请求的结果包括一个 _scroll_id,应将其传递给滚动 API 以检索下一批结果。
因此,我按照以下文档中的说明执行接下来的 3 个步骤:
requests.post(url="http://127.0.0.1:9200/_search/scroll", headers=headers, data=json.dumps({"scroll": "1m", "scroll_id": scroll_id}))
但是我得到的结果是 400,我做错了什么?我得到的返回字符串是:
{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Failed to parse request body"}],"type":"illegal_argument_exception","reason":"Failed to parse request body","caused_by":{"type":"json_parse_exception","reason":"Unrecognized token 'scroll': was expecting ('true', 'false' or 'null')\n at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@a7e638b; line: 1, column: 8]"}},"status":400}
我尝试了几种不同的组合,但我得到的只是 400。
解决方案
推荐阅读
- android - 网络更改广播接收器不会在一加手机中执行
- java - 用于 html 选择标记解析的 Java 正则表达式
- select - 如何在 selectInput 上选择不同的值
- azure - 在 foreach 中使用 if 时 Powershell 获得相同的值
- android - 将 FrameLayout 转换为视频?
- json - (400) 尝试通过 REST API 将图像发送到我的自定义 AutoML 模型时出现错误请求
- python - Python lambda:减少输入和调用
- java - 使用 jar 而不是设置 hazelcast 服务器配置,将 Hazelcast Mancenter 连接到外部 Hazelcast 服务器
- sql - 将动态 SQL 分批
- c# - 使用差异打包打包 Service Fabric 后阻止 Visual Studio 重建