在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 Request Body Search 中设置timeout 怎么没有作用?timeout参数可能无法完全停止搜索操作那如何才能够停止搜索操作? cancel取消的话怎么才能够获取task id?

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

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