bash
POST /索引名/_delete_by_query?conflicts=proceed&scroll_size=2000&wait_for_completion=false&slices=36
{"size": 2000,
"query": {
"bool": {
"must": [
{
"terms": {
"rule_id": [
800007
]
}
}
]
}
}
}
slices=36 一共的副本数量 主和副本总数。
scroll_size=2000 分批的数量。
conflicts=proceed 遇到版本冲突继续,
如果通过查询删除遇到版本冲突,将如何处理:终止或继续。默认为终止
wait_for_completion=false 放后台执行
通过调整这个两个参数控制性能和es压力
slices
scroll_size
查看后台任务id
bash
GET _tasks?detailed=true&actions=*/delete/byquery&pretty
取消任务
bash
POST /_tasks/ZGPDvWcgRXyuoWeiPFupcQ:23507301/_cancel
理论上删除数据以后后台会自动merge ,不用执行下面命令。
bash
POST /index_name/_forcemerge?only_expunge_deletes=true
参考:
https://elasticsearch.bookhub.tech/rest_apis/document_apis/delete_by_query