# Painless is not that painless

**URL:** https://discuss.elastic.co/t/painless-is-not-that-painless/263982
**Category:** Kibana
**Tags:** painless
**Created:** [February 11, 2021, 10:06am UTC](https://discuss.elastic.co/t/painless-is-not-that-painless/263982 "2021-02-11T10:06:22Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Casper\_Thrane](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/casper_thrane/32/49777_2.png) [@Casper\_Thrane](https://discuss.elastic.co/u/Casper_Thrane)
#### Post date: [February 11, 2021, 10:06am UTC](https://discuss.elastic.co/t/painless-is-not-that-painless/263982/1 "2021-02-11T10:06:22Z")

</div>

Hi

I am a simple thing, like assigning a text to a string variable, and then just return the value. But I keep getting compile error:

```
if (!doc.containsKey("url.query") || doc["url.query"].empty) {
   return null;
}

String params = "hej";

return params;

```

The compiler error is with the String type? What am i doing wrong. I think the painless very often, can painfull instead.

/Casper

---

<div class="post-metadata">

### Author: ![aaron-nimocks](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aaron-nimocks/32/73965_2.png) [@aaron-nimocks](https://discuss.elastic.co/u/aaron-nimocks)
#### Post date: [February 11, 2021, 12:42pm UTC](https://discuss.elastic.co/t/painless-is-not-that-painless/263982/2 "2021-02-11T12:42:59Z")

</div>

Where are you doing this script?  
What is the mapping of the field you are trying to run a script against?

I am assuming you are doing a script against a field that isn't a `String`.

---

<div class="post-metadata">

### Author: ![Casper\_Thrane](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/casper_thrane/32/49777_2.png) [@Casper\_Thrane](https://discuss.elastic.co/u/Casper_Thrane)
#### Post date: [February 11, 2021, 8:45pm UTC](https://discuss.elastic.co/t/painless-is-not-that-painless/263982/3 "2021-02-11T20:45:13Z")

</div>

I was creating a scripted field in Kibana. I solved the problem by changing the variable name from params to tmp??? I didn't know params is reserved word.

---

<div class="post-metadata">

### Author: ![aaron-nimocks](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aaron-nimocks/32/73965_2.png) [@aaron-nimocks](https://discuss.elastic.co/u/aaron-nimocks)
#### Post date: [February 11, 2021, 8:57pm UTC](https://discuss.elastic.co/t/painless-is-not-that-painless/263982/4 "2021-02-11T20:57:17Z")

</div>

I know it's reserved in Painless Lab but wouldn't think it carries over from that. Guess it's also used in templates and queries, passing in `params`.

---

<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: [March 11, 2021, 8:57pm UTC](https://discuss.elastic.co/t/painless-is-not-that-painless/263982/5 "2021-03-11T20:57:21Z")

</div>

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

---

<div class="post-metadata">

### Author: ![AdamWritesDocs](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adamwritesdocs/32/88193_2.png) [@AdamWritesDocs](https://discuss.elastic.co/u/AdamWritesDocs)
#### Post date: [May 4, 2021, 3:44pm UTC](https://discuss.elastic.co/t/painless-is-not-that-painless/263982/6 "2021-05-04T15:44:55Z")

</div>



---

<div class="post-metadata">

### Author: ![AdamWritesDocs](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adamwritesdocs/32/88193_2.png) [@AdamWritesDocs](https://discuss.elastic.co/u/AdamWritesDocs)
#### Post date: [May 4, 2021, 3:47pm UTC](https://discuss.elastic.co/t/painless-is-not-that-painless/263982/7 "2021-05-04T15:47:02Z")

</div>

@Casper_Thrane, we recently updated our documentation for [how to write scripts](https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting-using.html). Hopefully this information helps, but if not, please let us know where we can improve!

Also, consider using [runtime fields](https://www.elastic.co/guide/en/elasticsearch/reference/current/runtime.html) instead of Kibana scripted fields. They're more flexible, and you don't need to index them.

---

<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: [November 4, 2022, 8:23am UTC](https://discuss.elastic.co/t/painless-is-not-that-painless/263982/9 "2022-11-04T08:23:55Z")

</div>


