# Painless scripted fields for truncating multiple values of a field

**URL:** https://discuss.elastic.co/t/painless-scripted-fields-for-truncating-multiple-values-of-a-field/259440
**Category:** Kibana
**Tags:** painless
**Created:** [December 23, 2020, 3:22am UTC](https://discuss.elastic.co/t/painless-scripted-fields-for-truncating-multiple-values-of-a-field/259440 "2020-12-23T03:22:13Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Sivajanani](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sivajanani/32/75053_2.png) [@Sivajanani](https://discuss.elastic.co/u/Sivajanani)
#### Post date: [December 23, 2020, 3:22am UTC](https://discuss.elastic.co/t/painless-scripted-fields-for-truncating-multiple-values-of-a-field/259440/1 "2020-12-23T03:22:13Z")

</div>

Hello All,  
I have my field as below.  
tags: targetgeo:russia, targetgeo:china, targetgeo:iran

I wanted to truncate the string "targetgeo:" and need only values like russia,china,iran.

My painless script is like below,

```auto
if (doc.containsKey('tags.keyword') && doc['tags.keyword'].length>0){
  for (int i = 0; i < doc['tags.keyword'].length; i++) {
    if (doc['tags.keyword'][i].length() > 10) {
      if (doc['tags.keyword'][i].substring(0,10) == 'targetgeo:') {
              return doc['tags.keyword'][i].substring(10,doc['tags.keyword'][i].length());
      }
    }
  }
}
return "";

```

And I am getting only Iran as the result since that was the last field.  
I think I need one more loop to add that field. Can you give me some suggestions.  
Thanks.

---

<div class="post-metadata">

### Author: ![AClerk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aclerk/32/55297_2.png) [@AClerk](https://discuss.elastic.co/u/AClerk)
#### Post date: [December 23, 2020, 5:03am UTC](https://discuss.elastic.co/t/painless-scripted-fields-for-truncating-multiple-values-of-a-field/259440/2 "2020-12-23T05:03:19Z")

</div>

You can use REPLACE?

> **[String Functions | Elasticsearch Reference \[master\] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/master/sql-functions-string.html#sql-functions-string-replace)**

```auto
REPLACE(
    source,      
    pattern,     
    replacement)

```

Something like below

```auto
return REPLACE(doc['tags.keyword'], "targetgeo:", "")

```

A little POC --\>

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/e/6/e60ff4b609246f394d0e51249316bb9e160bb62f.png)

---

<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: [January 20, 2021, 5:03am UTC](https://discuss.elastic.co/t/painless-scripted-fields-for-truncating-multiple-values-of-a-field/259440/3 "2021-01-20T05:03:21Z")

</div>

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