删除仍然有效,但服务器会抛出异常,因为它花费的时间太长。在服务器端处理这个问题的最佳方法是什么?
delete_by_query api文档说它将返回一个任务,以便我可以跟踪删除进度。
如果请求包含 wait_for_completion=false,那么 Elasticsearch 将执行一些预检检查,启动请求,然后返回一个任务,该任务可与任务 API 一起使用来取消或获取任务的状态。Elasticsearch 还将在 .tasks/task/${taskId} 中创建此任务的记录作为文档。这是您可以根据需要保留或删除的。使用完毕后,将其删除,以便 Elasticsearch 可以回收其使用的空间。
如何获取这个任务id?并不是在HTTP响应中,同样在超时场景下,甚至可能没有HTTP响应。
GET _tasks?detailed=true&actions=*/delete/byquery
将返回给我一份删除任务列表,但我只想要一个任务。如果有两个任务正在运行,我怎么知道哪一个是我正在寻找的?
谢谢。
nic*_*yat 10
弹性搜索 6
创建任务:
nick@work:
curl -X POST "es-prices-ape:9200/prices /_delete_by_query?wait_for_completion=false" -H 'Content-Type: application/json' -d'
{
"query": {
"term": {
"cella_id": "58259"
}
}
}
'
{"task":"GChf5jO9Q2Sti-Qi1G-oAw:12221137"}
Run Code Online (Sandbox Code Playgroud)
获取任务信息:
nick@nick-home:~$ curl -X GET "es-prices-ape:9200/_tasks/{GChf5jO9Q2Sti-Qi1G-oAw:12221137}"
{"completed":true,"task":{"node":"GChf5jO9Q2Sti-Qi1G-oAw","id":12221137,"type":"transport","action":"indices:data/write/delete/byquery","status":{
"total" : 0,
"updated" : 0,
"created" : 0,
"deleted" : 0,
"batches" : 0,
"version_conflicts" : 0,
"noops" : 0,
....
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6490 次 |
最近记录: |