# ES 5.0 - case insensitive search for keyword fields

**URL:** https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111
**Category:** Elasticsearch
**Created:** [October 27, 2016, 8:16am UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111 "2016-10-27T08:16:53Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![haizaar](https://avatars.discourse-cdn.com/v4/letter/h/3d9bf3/32.png) [@haizaar](https://discuss.elastic.co/u/haizaar)
#### Post date: [October 27, 2016, 8:16am UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111/1 "2016-10-27T08:16:53Z")

</div>

In ES 5.0, is there a way to treat the new `keyword` field in case-insensitive manner?

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [October 27, 2016, 8:50am UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111/2 "2016-10-27T08:50:05Z")

</div>

Not yet. See [https://github.com/elastic/elasticsearch/issues/18064](https://github.com/elastic/elasticsearch/issues/18064)

---

<div class="post-metadata">

### Author: ![haizaar](https://avatars.discourse-cdn.com/v4/letter/h/3d9bf3/32.png) [@haizaar](https://discuss.elastic.co/u/haizaar)
#### Post date: [October 27, 2016, 8:56am UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111/3 "2016-10-27T08:56:41Z")

</div>

That's too bad ☹

The ticket does not seem to active really. Do you have an idea when will it be available?

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [October 27, 2016, 9:16am UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111/4 "2016-10-27T09:16:05Z")

</div>

I believe it is planned for 5.1 but @jpountz might tell you more. (I know he is very active on this feature).

---

<div class="post-metadata">

### Author: ![jpountz](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jpountz/32/45836_2.png) [@jpountz](https://discuss.elastic.co/u/jpountz)
#### Post date: [October 27, 2016, 12:30pm UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111/5 "2016-10-27T12:30:24Z")

</div>

I know it doesn't look active since most work is happening in Lucene at the moment, but this is a feature that we know many users are interested in.

---

<div class="post-metadata">

### Author: ![haizaar](https://avatars.discourse-cdn.com/v4/letter/h/3d9bf3/32.png) [@haizaar](https://discuss.elastic.co/u/haizaar)
#### Post date: [October 27, 2016, 2:42pm UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111/6 "2016-10-27T14:42:52Z")

</div>

Thanks you guys. Looking forward to see it working soon.

---

<div class="post-metadata">

### Author: ![dwhite44](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dwhite44/32/12774_2.png) [@dwhite44](https://discuss.elastic.co/u/dwhite44)
#### Post date: [October 27, 2016, 7:35pm UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111/7 "2016-10-27T19:35:50Z")

</div>

So what is the suggested workaround right now? Should using a text field with custom analyzer and enabling fielddata perform ok?

---

<div class="post-metadata">

### Author: ![Youxu](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/youxu/32/117375_2.png) [@Youxu](https://discuss.elastic.co/u/Youxu)
#### Post date: [October 31, 2016, 5:47am UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111/8 "2016-10-31T05:47:58Z")

</div>

We used custom analyzer as workaround:

```
      "analyzer": {
        "lowercase_keyword": {
          "filter": "lowercase",
          "type": "custom",
          "tokenizer": "keyword"
        }
      }
```

---

<div class="post-metadata">

### Author: ![tlovett1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tlovett1/32/13950_2.png) [@tlovett1](https://discuss.elastic.co/u/tlovett1)
#### Post date: [December 16, 2016, 9:05pm UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111/9 "2016-12-16T21:05:05Z")

</div>

Doesn't that give a field data error?

---

<div class="post-metadata">

### Author: ![fabiocatalao](https://avatars.discourse-cdn.com/v4/letter/f/779978/32.png) [@fabiocatalao](https://discuss.elastic.co/u/fabiocatalao)
#### Post date: [January 27, 2017, 10:17am UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111/10 "2017-01-27T10:17:48Z")

</div>

I've added a custom analyser:

> "analyzer": {  
> "folding": {  
> "tokenizer": "standard",  
> "filter": ["lowercase", "asciifolding"]  
> }  
> },

I've also added a dynamic template in order to set the datatype of my fields. I've the following for keyword.

> {  
> "string\_as\_keyword": {  
> "match\_mapping\_type": "string",  
> "match": "\*\_k",  
> "mapping": {  
> "type": "keyword",  
> "analyzer": "folding"  
> }  
> }  
> },

Is that correct? How can I query my data? I've found a lot of information about older versions but not for 5.0.

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [January 27, 2017, 11:44am UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111/11 "2017-01-27T11:44:53Z")

</div>

You [can't add an analyzer to the keyword type](https://github.com/elastic/elasticsearch/issues/18064).

In 5.2.0 you will be able to define a `normalizer`:

> <https://github.com/elastic/elasticsearch/pull/21919>

But if it's about search and not aggregations, then use a type `text` instead. It supports an analyzer.

---

<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: [July 5, 2017, 10:02pm UTC](https://discuss.elastic.co/t/es-5-0-case-insensitive-search-for-keyword-fields/64111/13 "2017-07-05T22:02:51Z")

</div>


