# \_update\_by\_query with ES 2.1

**URL:** https://discuss.elastic.co/t/update-by-query-with-es-2-1/157574
**Category:** Elasticsearch
**Created:** [November 20, 2018, 2:55pm UTC](https://discuss.elastic.co/t/update-by-query-with-es-2-1/157574 "2018-11-20T14:55:33Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![boeledi01](https://avatars.discourse-cdn.com/v4/letter/b/94ad74/32.png) [@boeledi01](https://discuss.elastic.co/u/boeledi01)
#### Post date: [November 20, 2018, 2:55pm UTC](https://discuss.elastic.co/t/update-by-query-with-es-2-1/157574/1 "2018-11-20T14:55:33Z")

</div>

I need to apply a fix to the content of various documents in ES 2.1 (bug in the code we urgently need to fix).  
We have ~400 M documents in ES 2.1

The following request works perfectly in ES 6:

POST messages/\_update\_by\_query  
{  
"script": {  
"source": "ctx.\_source.item.amountEuro=(Math.round(100.0\*ctx.\_source.item.amountNational/ctx.\_source.item.conversionRate))/100.0",  
"lang": "painless"  
},  
"query": {  
"term": {  
"country": "HR"  
}  
}  
}

In ES 2.1, I have a type: "sdr"

Therefore, I tried running the very same request, simply adding the type as follows:

POST messages/ **sdr** /\_udpate\_by\_query  
...

but this does not work (at least nothing is performed at the level of the documents).

What am I doing wrong?

Many thanks for your help.

---

<div class="post-metadata">

### Author: ![byronvoorbach](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/byronvoorbach/32/8283_2.png) [@byronvoorbach](https://discuss.elastic.co/u/byronvoorbach)
#### Post date: [November 20, 2018, 2:58pm UTC](https://discuss.elastic.co/t/update-by-query-with-es-2-1/157574/2 "2018-11-20T14:58:51Z")

</div>

Painless was not supported till ES 5.0

Reference: [link](https://www.elastic.co/blog/painless-a-new-scripting-language)

You will have to rewrite your current script to a Groovy script. As explained [here](https://www.elastic.co/guide/en/elasticsearch/reference/2.1/modules-scripting.html)

Good luck with fixing your issue!

---

<div class="post-metadata">

### Author: ![byronvoorbach](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/byronvoorbach/32/8283_2.png) [@byronvoorbach](https://discuss.elastic.co/u/byronvoorbach)
#### Post date: [November 20, 2018, 3:01pm UTC](https://discuss.elastic.co/t/update-by-query-with-es-2-1/157574/3 "2018-11-20T15:01:46Z")

</div>

Ohh now that I think of it, `update_by_query` api was not implemented until version 2.3..

---

<div class="post-metadata">

### Author: ![boeledi01](https://avatars.discourse-cdn.com/v4/letter/b/94ad74/32.png) [@boeledi01](https://discuss.elastic.co/u/boeledi01)
#### Post date: [November 20, 2018, 3:04pm UTC](https://discuss.elastic.co/t/update-by-query-with-es-2-1/157574/4 "2018-11-20T15:04:50Z")

</div>

Don't tell me that ☹

Therefore I need to make a dedicated development to solve this... oh no...

Thanks for your answer.

---

<div class="post-metadata">

### Author: ![byronvoorbach](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/byronvoorbach/32/8283_2.png) [@byronvoorbach](https://discuss.elastic.co/u/byronvoorbach)
#### Post date: [November 20, 2018, 3:08pm UTC](https://discuss.elastic.co/t/update-by-query-with-es-2-1/157574/5 "2018-11-20T15:08:45Z")

</div>

Sorry man 😢 wish I could be of more help

---

<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: [December 18, 2018, 3:10pm UTC](https://discuss.elastic.co/t/update-by-query-with-es-2-1/157574/6 "2018-12-18T15:10:50Z")

</div>

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