# Can't figure out how to handle missing doc fields with ScriptedFields

**URL:** <https://discuss.elastic.co/t/cant-figure-out-how-to-handle-missing-doc-fields-with-scriptedfields/216573>\
**Category:** Elasticsearch\
**Tags:** painless\
**Created:** [January 26, 2020, 4:08pm UTC](https://discuss.elastic.co/t/cant-figure-out-how-to-handle-missing-doc-fields-with-scriptedfields/216573 "2020-01-26T16:08:58Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![tuudik](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tuudik/32/32476_2.png) [@tuudik](https://discuss.elastic.co/u/tuudik)\
**Post date:** [January 26, 2020, 4:08pm UTC](https://discuss.elastic.co/t/cant-figure-out-how-to-handle-missing-doc-fields-with-scriptedfields/216573/1 "2020-01-26T16:08:58Z")

</div>

I upgraded my ES to version 7.1 and ofcourse I ran into issue, where Scripted Fields cant have empty doc fields anymore.

My scripted field is concating 3 fields and last one of might be sometimes missing.  
Could someone reach an helping hand and help me converting the script so that it would work with 7.1 ES?

The script itself:  
doc['field1.keyword'].value + ':' +  
doc['field2.keyword'].value + ':' +  
doc['field3.keyword'].value

I tried implementing the if statement, but it went to total garbage. As I said field3 is sometimes missing from doc.

---

<div class="post-metadata">

**Author:** ![tuudik](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tuudik/32/32476_2.png) [@tuudik](https://discuss.elastic.co/u/tuudik)\
**Post date:** [January 27, 2020, 3:02pm UTC](https://discuss.elastic.co/t/cant-figure-out-how-to-handle-missing-doc-fields-with-scriptedfields/216573/2 "2020-01-27T15:02:17Z")

</div>

I figured out the solution:

```
def field1='';
def field2='';
def field3='';
if (doc['field1.keyword'].size() > 0) field1 = doc['field1.keyword'].value + ':';
if (doc['field2.keyword'].size() > 0) field2 = doc['field2.keyword'].value;
if (doc['field3.keyword'].size() > 0) field3 = ':' + doc['field3.keyword'].value;
return field1 + field2 + field3;
```

---

<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:** [February 24, 2020, 3:02pm UTC](https://discuss.elastic.co/t/cant-figure-out-how-to-handle-missing-doc-fields-with-scriptedfields/216573/3 "2020-02-24T15:02:19Z")

</div>

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