在 Elasticsearch 的 Request Body Search 中,设置 timeout 参数可能无法完全停止搜索操作。这是因为 timeout 参数只是设置了搜索操作的超时时间,但并不会中断搜索操作。如果想要停止搜索操作,可以使用 cancel API 来取消该操作。

要获取任务的 ID,可以使用 _task API,并通过传递 cancel 参数来取消搜索操作。具体步骤如下:

  1. 发送搜索请求时,使用'request_timeout' 参数来设置搜索操作的超时时间。例如:
POST /my-index/_search
{
  "query": {
    "match_all": {}
  },
  "request_timeout": "1m"  // 设置超时时间为1分钟
}
  1. 如果想要取消搜索操作,可以通过 _task API 来获取任务的 ID。例如:
GET /_tasks?detailed=true&actions=*search

这个请求将返回所有正在运行的搜索任务的相关信息,包括任务的 ID。

  1. 获取到任务的 ID 后,可以使用 cancel API 来取消搜索操作。例如:
POST /_tasks/{task_id}/_cancel

请将'{task_id}' 替换为实际的任务 ID。

通过以上步骤,您可以在 Elasticsearch 中停止搜索操作,并获取任务的 ID。

Elasticsearch 搜索请求超时设置失效?如何停止搜索并获取任务ID?

原文地址: https://www.cveoy.top/t/topic/p3DC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录