# How to convert case at runtime at search query in kibana

**URL:** <https://discuss.elastic.co/t/how-to-convert-case-at-runtime-at-search-query-in-kibana/101797>\
**Category:** Kibana\
**Created:** [September 26, 2017, 8:05am UTC](https://discuss.elastic.co/t/how-to-convert-case-at-runtime-at-search-query-in-kibana/101797 "2017-09-26T08:05:03Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![kanchan](https://avatars.discourse-cdn.com/v4/letter/k/8797f3/32.png) [@kanchan](https://discuss.elastic.co/u/kanchan)\
**Post date:** [September 26, 2017, 8:05am UTC](https://discuss.elastic.co/t/how-to-convert-case-at-runtime-at-search-query-in-kibana/101797/1 "2017-09-26T08:05:03Z")

</div>

hi,

How we can achieve this in kibana:

select \* from CEM\_SOLR\_REPORT where lower(PROGRESS\_FLAG)='success';

---

<div class="post-metadata">

**Author:** ![jbudz](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jbudz/32/45922_2.png) [@jbudz](https://discuss.elastic.co/u/jbudz)\
**Post date:** [September 26, 2017, 9:04pm UTC](https://discuss.elastic.co/t/how-to-convert-case-at-runtime-at-search-query-in-kibana/101797/2 "2017-09-26T21:04:29Z")

</div>

The equivalent would be creating a scripted field and then searching on it:

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/0/4/04ef19e67ed6683fb3e81ef76a881a5493785c6d.png)

query:

```auto
LOWER_CASE_PROGRESS_FLAG: success

```

The "table" would be selected by the index pattern dropdown on the left.

---

<div class="post-metadata">

**Author:** ![kanchan](https://avatars.discourse-cdn.com/v4/letter/k/8797f3/32.png) [@kanchan](https://discuss.elastic.co/u/kanchan)\
**Post date:** [September 27, 2017, 11:32am UTC](https://discuss.elastic.co/t/how-to-convert-case-at-runtime-at-search-query-in-kibana/101797/3 "2017-09-27T11:32:51Z")

</div>

I am using like below, but it is giving error.

GET /hist\_latest\_5.5.0/\_search  
{  
"query": {  
"bool": {  
"must": [  
{  
"script": {  
"script": "doc['bank\_client\_entity\_name'].value.toLowerCase()=SHELL TREASURY CENTRE LIMITED"  
}  
}  
]  
}  
}

}

---

<div class="post-metadata">

**Author:** ![jbudz](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jbudz/32/45922_2.png) [@jbudz](https://discuss.elastic.co/u/jbudz)\
**Post date:** [September 27, 2017, 5:55pm UTC](https://discuss.elastic.co/t/how-to-convert-case-at-runtime-at-search-query-in-kibana/101797/4 "2017-09-27T17:55:38Z")

</div>

A few small changes, does this work for you?

```auto
GET /hist_latest_5.5.0/_search
{
  "query": {
    "bool": {
      "must": [{
        "script": {
          "script": "doc['bank_client_entity_name'].value.toUpperCase() == 'SHELL TREASURY CENTRE LIMITED'"
        }
      }]
    }
  }
}
```

---

<div class="post-metadata">

**Author:** ![kanchan](https://avatars.discourse-cdn.com/v4/letter/k/8797f3/32.png) [@kanchan](https://discuss.elastic.co/u/kanchan)\
**Post date:** [September 29, 2017, 8:31am UTC](https://discuss.elastic.co/t/how-to-convert-case-at-runtime-at-search-query-in-kibana/101797/5 "2017-09-29T08:31:07Z")

</div>

Hi Jon,  
I used this code like:  
GET /hist\_latest\_5.5.0/\_search  
{  
"query": {  
"bool": {  
"must": [{  
"script": {  
"script": "doc['bank\_client\_entity\_name.keyword'].value.toUpperCase == 'SHELL TREASURY CENTRE LIMITED'"  
}  
}]  
}  
}  
}

but it is giving exception like:

{  
"error": {  
"root\_cause": [  
{  
"type": "script\_exception",  
"reason": "runtime error",  
"script\_stack": [  
"doc['bank\_client\_entity\_name.keyword'].value.toUpperCase == 'SHELL TREASURY CENTRE LIMITED'",  
" ^---- HERE"  
],  
"script": "doc['bank\_client\_entity\_name.keyword'].value.toUpperCase == 'SHELL TREASURY CENTRE LIMITED'",  
"lang": "painless"  
}  
],  
"type": "search\_phase\_execution\_exception",  
"reason": "all shards failed",  
"phase": "query",  
"grouped": true,  
"failed\_shards": [  
{  
"shard": 0,  
"index": "hist\_latest\_5.5.0",  
"node": "xKmSFoaSQwOhSjguRZI5pA",  
"reason": {  
"type": "script\_exception",  
"reason": "runtime error",  
"script\_stack": [  
"doc['bank\_client\_entity\_name.keyword'].value.toUpperCase == 'SHELL TREASURY CENTRE LIMITED'",  
" ^---- HERE"  
],  
"script": "doc['bank\_client\_entity\_name.keyword'].value.toUpperCase == 'SHELL TREASURY CENTRE LIMITED'",  
"lang": "painless",  
"caused\_by": {  
"type": "illegal\_argument\_exception",  
"reason": "Unable to find dynamic field [toUpperCase] for class [java.lang.String]."  
}  
}  
}  
]  
},  
"status": 500  
}

---

<div class="post-metadata">

**Author:** ![kanchan](https://avatars.discourse-cdn.com/v4/letter/k/8797f3/32.png) [@kanchan](https://discuss.elastic.co/u/kanchan)\
**Post date:** [September 29, 2017, 3:05pm UTC](https://discuss.elastic.co/t/how-to-convert-case-at-runtime-at-search-query-in-kibana/101797/6 "2017-09-29T15:05:59Z")

</div>

Thanks jbudz!!!!!! its working f9. but I have to implement it in java with rest client.how we can achieve it.

my code in kibana is:

GET /hist\_latest\_5.5.0/\_search  
{  
"query": {  
"bool": {  
"must": [{  
"script": {  
"script": "doc['bank\_client\_entity\_name.keyword'].empty ? false : doc['bank\_client\_entity\_name.keyword'].value.toLowerCase() == 'pravin mehta'"  
}  
}]  
}  
}  
}

I have to do this at java side.

---

<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:** [October 27, 2017, 3:06pm UTC](https://discuss.elastic.co/t/how-to-convert-case-at-runtime-at-search-query-in-kibana/101797/7 "2017-10-27T15:06:13Z")

</div>

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