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