Shi*_*oni 5 nosql elasticsearch elasticsearch-5
假设我有一个运行时间很长的更新查询,我正在将〜200k更新为500k,甚至更多。为什么我需要更新这么多文档不在问题范围之内。
由于客户端超时(我使用官方的ES python客户端),因此我希望有一种方法来检查批量更新请求的状态,而不必使用巨大的超时值。
对于简短的请求,可以使用请求的响应,是否可以获取请求的响应,或者是否可以为请求指定name或id以便稍后引用。
对于正在运行的请求:我可以使用tasks API获取信息。
但是对于其他状态-已完成/失败,我该如何获取。如果我尝试访问已完成的任务,则会得到resource not found。
我正在使用update_by_query更新的PS
With the task id you can look up the task directly:\n\nGET /_tasks/taskId:1\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n\n\n此 API 的优点是它与 wait_for_completion=false 集成,以透明地返回已完成任务的状态。如果任务已完成并且设置了 wait_for_completion=false,则 xe2x80x99 将返回结果或错误字段。此功能的成本是 wait_for_completion=false 在 .tasks/task/${taskId} 创建的文档。由您决定是否删除该文档。
\n
我的用例是这样的,我需要执行 update_by_query 并且我使用 painless 作为脚本语言。起初我做了重新索引(测试时)。然后我尝试使用该update_by_query功能(它们非常相似)。我向任务 api 发出了请求(当然操作还没有完成),我看到任务正在执行。当它完成时,我做了一个查询,我正在操作的字段的数据消失了。该脚本有效,因为我对 reindex api 使用了相同的脚本,并且一切都按预期进行。由于时间不够,我没有进一步调查,但是......是的,彻底测试......
| 归档时间: |
|
| 查看次数: |
2677 次 |
| 最近记录: |