# Delete by query on alias or multiple indexes

**URL:** https://discuss.elastic.co/t/delete-by-query-on-alias-or-multiple-indexes/43102
**Category:** Elasticsearch
**Created:** [March 1, 2016, 10:28am UTC](https://discuss.elastic.co/t/delete-by-query-on-alias-or-multiple-indexes/43102 "2016-03-01T10:28:21Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![ogauchard](https://avatars.discourse-cdn.com/v4/letter/o/3da27b/32.png) [@ogauchard](https://discuss.elastic.co/u/ogauchard)
#### Post date: [March 1, 2016, 10:28am UTC](https://discuss.elastic.co/t/delete-by-query-on-alias-or-multiple-indexes/43102/1 "2016-03-01T10:28:21Z")

</div>

I am trying to delete documents by query on multiple indexes.

The plugin seems to fail on aliases with the following error :  
Alias [xxx] has more than one indices associated with it

I also tried to delete using \_all and wildcard but it also fail.

Is there any way to delete documents by query on multiple indexes ?

---

<div class="post-metadata">

### Author: ![danielmitterdorfer](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/danielmitterdorfer/32/110510_2.png) [@danielmitterdorfer](https://discuss.elastic.co/u/danielmitterdorfer)
#### Post date: [March 1, 2016, 12:16pm UTC](https://discuss.elastic.co/t/delete-by-query-on-alias-or-multiple-indexes/43102/2 "2016-03-01T12:16:58Z")

</div>

Hi,

this works fine indeed. Here's a complete example based on Elasticsearch 2.2:

Install the `delete-by-query` plugin:

```auto
bin/plugin install delete-by-query

```

Create a few documents in multiple indices:

```auto
POST /_bulk
{"index":{"_index":"logs-2014","_type":"click"}}
{"ip_address":"1.1.1.1","event":"click"}
{"index":{"_index":"logs-2014","_type":"click"}}
{"ip_address":"1.1.1.1","event":"buy"}
{"index":{"_index":"logs-2015","_type":"click"}}
{"ip_address":"1.1.1.1","event":"click"}
{"index":{"_index":"logs-2015","_type":"click"}}
{"ip_address":"1.1.1.1","event":"buy"}
{"index":{"_index":"logs-2016","_type":"click"}}
{"ip_address":"1.1.1.1","event":"click"}
{"index":{"_index":"logs-2016","_type":"click"}}
{"ip_address":"1.1.1.1","event":"buy"}
{"index":{"_index":"logs-2016","_type":"click"}}
{"ip_address":"1.1.1.1","event":"click"}

```

Add a `logs` alias for all these indices:

```auto
POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "logs-2014", "alias" : "logs" } },
        { "add" : { "index" : "logs-2015", "alias" : "logs" } },
        { "add" : { "index" : "logs-2016", "alias" : "logs" } }
    ]
}

```

Check that we actually have documents across multiple indices:

```auto
GET /logs/_search
{
   "query": {
      "match_all": { }
   }
}

```

Now delete all "click" events across all indices (based on the alias `logs`):

```auto
DELETE /logs/_query
{
   "query": {
      "match": {
         "event": {
            "query": "click"
         }
      }
   }
}

```

This returns:

```auto
{
   "took": 0,
   "timed_out": false,
   "_indices": {
      "_all": {
         "found": 4,
         "deleted": 4,
         "missing": 0,
         "failed": 0
      },
      "logs-2015": {
         "found": 1,
         "deleted": 1,
         "missing": 0,
         "failed": 0
      },
      "logs-2016": {
         "found": 2,
         "deleted": 2,
         "missing": 0,
         "failed": 0
      },
      "logs-2014": {
         "found": 1,
         "deleted": 1,
         "missing": 0,
         "failed": 0
      }
   },
   "failures": []
}

```

Daniel

---

<div class="post-metadata">

### Author: ![ogauchard](https://avatars.discourse-cdn.com/v4/letter/o/3da27b/32.png) [@ogauchard](https://discuss.elastic.co/u/ogauchard)
#### Post date: [March 1, 2016, 1:25pm UTC](https://discuss.elastic.co/t/delete-by-query-on-alias-or-multiple-indexes/43102/3 "2016-03-01T13:25:31Z")

</div>

You're right, it works fine !

I made a mistake in uris.  
I was using this one for check : GET /logs/\_search  
And quite the same for delete : DELETE /logs/\_search

But for delete it is **query** and not search as you suggested : DELETE/logs/\_query

Thanks for your help.

---

<div class="post-metadata">

### Author: ![danielmitterdorfer](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/danielmitterdorfer/32/110510_2.png) [@danielmitterdorfer](https://discuss.elastic.co/u/danielmitterdorfer)
#### Post date: [March 1, 2016, 2:35pm UTC](https://discuss.elastic.co/t/delete-by-query-on-alias-or-multiple-indexes/43102/4 "2016-03-01T14:35:06Z")

</div>

You're right. It is "query". I had already edited the post after I have initially written it. It should now be correct as is. Great to know that it works for you know.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [July 5, 2017, 11:12pm UTC](https://discuss.elastic.co/t/delete-by-query-on-alias-or-multiple-indexes/43102/5 "2017-07-05T23:12:29Z")

</div>


