How to delete Elasticsearch indices using wildcard expression
Delete Elasticsearch indices using wildcard expression.
List indices.
$ curl -u elastic:elastic "https://192.168.8.153:9200/_cat/indices/nginx*?v"
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open nginx-logs-2023-07-25 hbcUxgMGTrS5gZ08TV6RaA 1 1 0 0 450b 225b green open nginx-logs-2023-07-24 YF8XoGKHTUa2uT_dIN2qMg 1 1 0 0 450b 225b green open nginx-logs-2023-07-23 Il9uZxM-RMm5g7rpynG8bg 1 1 0 0 450b 225b green open nginx-logs-2023-07-22 MpEyNWVQSL-NrtCB8ACIpQ 1 1 0 0 450b 225b
Try to delete multiple indices using wildcard expression.
$ curl -X DELETE -u elastic:elastic "https://192.168.8.153:9200/nginx*?pretty"
{
"error" : {
"root_cause" : [
{
"type" : "illegal_argument_exception",
"reason" : "Wildcard expressions or all indices are not allowed"
}
],
"type" : "illegal_argument_exception",
"reason" : "Wildcard expressions or all indices are not allowed"
},
"status" : 400
}
Allow using wildcards (including _all keyword) to delete multiple indices.
$ curl -X PUT -u elastic:elastic "https://192.168.8.153:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'{"persistent": {"action.destructive_requires_name":false}}'
{
"acknowledged" : true,
"persistent" : {
"action" : {
"destructive_requires_name" : "false"
}
},
"transient" : { }
}
{
"acknowledged" : true,
"persistent" : {
"cluster" : {
"routing" : {
"allocation" : {
"enable" : "primaries"
}
}
}
},
"transient" : { }
}
Verify persistent settings.
$ curl -s -u elastic:elastic "https://192.168.8.153:9200/_cluster/settings?include_defaults=true"| jq .persistent
{
"action": {
"destructive_requires_name": "false"
}
}
Delete multiple indices using wildcard expression.
$ curl -X DELETE -u elastic:elastic "https://192.168.8.153:9200/nginx*?pretty"
{
"acknowledged" : true
}
List indices.
$ curl -s -u elastic:elastic "https://192.168.8.153:9200/_cat/indices/nginx*?format=json" | jq .
[]
Read more here: Source link
