Elasticsearch 重新索引失败的超时响应
Timeout Response for Failed Elasticsearch Re-index
我正在使用 Elasticsearch 的重新索引 api 将文档从一个索引(名为 index1)移动到另一个索引(名为 index2)。
当 index1 的大小太大时,我的问题就出现了,所以超时响应从 Elasticsearch 返回。还有另一个查询 (GET _tasks?detailed=true&actions=*reindex) 显示了重新索引过程。但是我无法弄清楚如果在重建索引期间出现错误我如何查看错误以及我的重建索引任务失败的原因。
我不喜欢的一个可能的解决方案是增加 Elasticsearch 的超时响应。有什么解决方案可以在不增加超时的情况下看到错误吗?
我通常做的是使用 ?wait_for_completion=false
启动重新索引,以便创建后台任务。 reindex 调用几乎会立即 return 并告诉您已创建任务的 ID。
然后您可以使用 Task API 检查任务状态:
GET .tasks/task/<taskId>
即使重新索引完成,任务仍会保留在索引中,您可以检查是否有错误。
不过,您有责任使用以下方法删除该文档:
DELETE .tasks/task/<taskId>
我正在使用 Elasticsearch 的重新索引 api 将文档从一个索引(名为 index1)移动到另一个索引(名为 index2)。
当 index1 的大小太大时,我的问题就出现了,所以超时响应从 Elasticsearch 返回。还有另一个查询 (GET _tasks?detailed=true&actions=*reindex) 显示了重新索引过程。但是我无法弄清楚如果在重建索引期间出现错误我如何查看错误以及我的重建索引任务失败的原因。
我不喜欢的一个可能的解决方案是增加 Elasticsearch 的超时响应。有什么解决方案可以在不增加超时的情况下看到错误吗?
我通常做的是使用 ?wait_for_completion=false
启动重新索引,以便创建后台任务。 reindex 调用几乎会立即 return 并告诉您已创建任务的 ID。
然后您可以使用 Task API 检查任务状态:
GET .tasks/task/<taskId>
即使重新索引完成,任务仍会保留在索引中,您可以检查是否有错误。
不过,您有责任使用以下方法删除该文档:
DELETE .tasks/task/<taskId>