Elasticsearch 搜索请求超时设置失效?如何停止搜索并获取任务ID?
在 Elasticsearch 的 Request Body Search 中,设置 timeout 参数可能无法完全停止搜索操作。这是因为 timeout 参数只是设置了搜索操作的超时时间,但并不会中断搜索操作。如果想要停止搜索操作,可以使用 cancel API 来取消该操作。
要获取任务的 ID,可以使用 _task API,并通过传递 cancel 参数来取消搜索操作。具体步骤如下:
- 发送搜索请求时,使用'request_timeout' 参数来设置搜索操作的超时时间。例如:
POST /my-index/_search
{
"query": {
"match_all": {}
},
"request_timeout": "1m" // 设置超时时间为1分钟
}
- 如果想要取消搜索操作,可以通过 _task API 来获取任务的 ID。例如:
GET /_tasks?detailed=true&actions=*search
这个请求将返回所有正在运行的搜索任务的相关信息,包括任务的 ID。
- 获取到任务的 ID 后,可以使用 cancel API 来取消搜索操作。例如:
POST /_tasks/{task_id}/_cancel
请将'{task_id}' 替换为实际的任务 ID。
通过以上步骤,您可以在 Elasticsearch 中停止搜索操作,并获取任务的 ID。
原文地址: https://www.cveoy.top/t/topic/p3DC 著作权归作者所有。请勿转载和采集!