从Elastic GET API获取热门xyz

问题描述

我需要从Elastic Index中删除文档。我尝试了以下操作,但是由于文档的大小而导致超时。

POST my-index-000001/_delete_by_query?conflicts=proceed
{
  "query": {
    "match_all": {}
  }
}

因此,我正在考虑获取前5000条记录ids并发送批量删除查询。谁能帮我从弹性API获取前5000个ID(无需检索整个文档对象)?还是有其他方法可以处理这种情况?

解决方法

尝试添加wait_for_completion=false

from here

    POST my-index-000001/_delete_by_query?conflicts=proceed&wait_for_completion=false
     {
      "query": {
      "match_all": {}
     }
   }

如果请求包含wait_for_completion = false,Elasticsearch会执行一些预检检查,启动请求,然后返回一个可用于取消或获取任务状态的任务。 Elasticsearch在.tasks / task / $ {taskId}处以文档形式创建此任务的记录。完成任务后,应删除任务文档,以便Elasticsearch可以回收空间。

运行GET /_tasks/your-task-id以查看其状态