# Delete time based indices on elastic search older than 30 days using date math expression in JAVA gives indexNotExists exception

**URL:** <https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365>\
**Category:** Elasticsearch\
**Tags:** elastic-stack-monitoring\
**Created:** [March 7, 2019, 6:09pm UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365 "2019-03-07T18:09:09Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![singla\_02](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/singla_02/32/93620_2.png) [@singla\_02](https://discuss.elastic.co/u/singla_02)\
**Post date:** [March 7, 2019, 6:09pm UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/1 "2019-03-07T18:09:09Z")

</div>

want to delete time based indices on Elasticsearch older than some specific (let's say 30) days using date math expression in JAVA.

> Trying to implement following approach in our spring boot application using Transaport Client but getting index not exist exception.  
> [Date math support in system and index alias names | Elasticsearch Guide [8.11] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/date-math-index-names.html)

When the same URI encoded index name (which is passed to DELETE INDEX API) is used to search index using query GET uri\_encoded\_index\_name on kibana, It shows that index exists.

Is there something I am missing out ?  
Is there any better approach to do that without using curator and wilcard characters?

code snippet:

```
String indexName = "<" + indexNameStaticPart + "{now/d-30d{MMddYYYY}}>";
String encodedIndexName = UriEncoder.encode( indexName ).replace( "/", "%2F" );
AcknowledgedResponse response = client.admin().indices().delete( new DeleteIndexRequest( encodedIndexName ) ).actionGet();  

```

encodedIndexName = %3Cstring\_\_string\_string\_\_%7Bnow%2Fd-30d%7BMMddyyyy%7D%7D%3E

kibana:

```
GET encodedIndexName 
DELETE encodedIndexName

```

---

<div class="post-metadata">

**Author:** ![ylasri](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ylasri/32/86120_2.png) [@ylasri](https://discuss.elastic.co/u/ylasri)\
**Post date:** [March 9, 2019, 8:56am UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/2 "2019-03-09T08:56:51Z")

</div>

Life is easy with elastic curator  
[https://www.elastic.co/guide/en/elasticsearch/client/curator/current/ex\_delete\_indices.html](https://www.elastic.co/guide/en/elasticsearch/client/curator/current/ex_delete_indices.html)

---

<div class="post-metadata">

**Author:** ![singla\_02](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/singla_02/32/93620_2.png) [@singla\_02](https://discuss.elastic.co/u/singla_02)\
**Post date:** [March 9, 2019, 10:46am UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/3 "2019-03-09T10:46:27Z")

</div>

Yeah, I know but I was just wondering why this is not working.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 9, 2019, 11:16am UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/4 "2019-03-09T11:16:56Z")

</div>

What do you have in `encodedIndexName`? Could you print its value?

---

<div class="post-metadata">

**Author:** ![singla\_02](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/singla_02/32/93620_2.png) [@singla\_02](https://discuss.elastic.co/u/singla_02)\
**Post date:** [March 9, 2019, 1:37pm UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/5 "2019-03-09T13:37:27Z")

</div>

%3Cstring\_\_string\_string\_\_%7Bnow%2Fd-30d%7BMMddyyyy%7D%7D%3E

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 9, 2019, 1:56pm UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/6 "2019-03-09T13:56:52Z")

</div>

It does not look like an index name unless `indexNameStaticPart` is really `string__string_string`.

What gives

```auto
GET /_cat/indices?v

```

Do you have an index named `string __string_string__ 02072019`?

---

<div class="post-metadata">

**Author:** ![singla\_02](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/singla_02/32/93620_2.png) [@singla\_02](https://discuss.elastic.co/u/singla_02)\
**Post date:** [March 9, 2019, 2:39pm UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/7 "2019-03-09T14:39:29Z")

</div>

Yes

```
GET /_cat/indices?v

```

shows list of all the indices, among them one is string\_\_string\_string\_\_02072019

even

```
GET %3Cstring __string_string__ %7Bnow%2Fd-30d%7BMMddyyyy%7D%7D%3E

```

shows the index mappings and settings

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 9, 2019, 6:24pm UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/8 "2019-03-09T18:24:03Z")

</div>

Did you try without doing the url encoding?

---

<div class="post-metadata">

**Author:** ![singla\_02](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/singla_02/32/93620_2.png) [@singla\_02](https://discuss.elastic.co/u/singla_02)\
**Post date:** [March 9, 2019, 7:10pm UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/9 "2019-03-09T19:10:26Z")

</div>

Yeah I just. It worked out. Thanks man.

Any idea why is it different from the provided documentation ?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 9, 2019, 7:59pm UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/10 "2019-03-09T19:59:24Z")

</div>

Which documentation?

---

<div class="post-metadata">

**Author:** ![singla\_02](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/singla_02/32/93620_2.png) [@singla\_02](https://discuss.elastic.co/u/singla_02)\
**Post date:** [March 9, 2019, 8:02pm UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/11 "2019-03-09T20:02:50Z")

</div>

[https://www.elastic.co/guide/en/elasticsearch/reference/current/date-math-index-names.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/date-math-index-names.html)

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 9, 2019, 8:41pm UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/12 "2019-03-09T20:41:59Z")

</div>

I see. I believe that the high level client does encoding if needed.

---

<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:** [April 6, 2019, 8:42pm UTC](https://discuss.elastic.co/t/delete-time-based-indices-on-elastic-search-older-than-30-days-using-date-math-expression-in-java-gives-indexnotexists-exception/171365/13 "2019-04-06T20:42:03Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
