# Finding if a Field exist using painless inline

**URL:** <https://discuss.elastic.co/t/finding-if-a-field-exist-using-painless-inline/96421>\
**Category:** Elasticsearch\
**Created:** [August 9, 2017, 10:31am UTC](https://discuss.elastic.co/t/finding-if-a-field-exist-using-painless-inline/96421 "2017-08-09T10:31:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![v6nerd](https://avatars.discourse-cdn.com/v4/letter/v/f475e1/32.png) [@v6nerd](https://discuss.elastic.co/u/v6nerd)\
**Post date:** [August 9, 2017, 10:31am UTC](https://discuss.elastic.co/t/finding-if-a-field-exist-using-painless-inline/96421/1 "2017-08-09T10:31:25Z")

</div>

I'm trying to run the \_update\_by\_query to create a new field that takes a value of an existing field and adds say 1 for example.

POST newlogstash/\_update\_by\_query  
{  
"script": {  
"lang": "painless",  
"inline": "if (ctx.\_source.alert.severity \> 2) {ctx.\_source.cmertic += 1;}"  
}  
}

but I get the following error, and my hunch is that because the field alert.severity is not always present. So how do I check if a field exist within the inline syntax

{  
"error": {  
"root\_cause": [  
{  
"type": "script\_exception",  
"reason": "runtime error",  
"script\_stack": [  
"if (ctx.\_source.alert.severity \> 2) {",  
" ^---- HERE"  
],  
"script": "if (ctx.\_source.alert.severity \> 2) {ctx.\_source.cmertic += 1;}",  
"lang": "painless"  
}  
],  
"type": "script\_exception",  
"reason": "runtime error",  
"script\_stack": [  
"if (ctx.\_source.alert.severity \> 2) {",  
" ^---- HERE"  
],  
"script": "if (ctx.\_source.alert.severity \> 2) {ctx.\_source.cmertic += 1;}",  
"lang": "painless",  
"caused\_by": {  
"type": "null\_pointer\_exception",  
"reason": null  
}  
},  
"status": 500  
}

---

<div class="post-metadata">

**Author:** ![s1monw](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/s1monw/32/3637_2.png) [@s1monw](https://discuss.elastic.co/u/s1monw)\
**Post date:** [August 11, 2017, 9:41am UTC](https://discuss.elastic.co/t/finding-if-a-field-exist-using-painless-inline/96421/2 "2017-08-11T09:41:50Z")

</div>

I am sure @Jack_Conradson can help you here but I'd guess you can do `if (ctx._source.alter != null)` or something similar for the other fields?

---

<div class="post-metadata">

**Author:** ![Jack\_Conradson](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jack_conradson/32/47236_2.png) [@Jack\_Conradson](https://discuss.elastic.co/u/Jack_Conradson)\
**Post date:** [August 11, 2017, 3:13pm UTC](https://discuss.elastic.co/t/finding-if-a-field-exist-using-painless-inline/96421/3 "2017-08-11T15:13:22Z")

</div>

@s1monw is correct. You should be able to use his code snippet to check for fields this way using \_source.

---

<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:** [September 8, 2017, 3:13pm UTC](https://discuss.elastic.co/t/finding-if-a-field-exist-using-painless-inline/96421/4 "2017-09-08T15:13:24Z")

</div>

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