# Mapping case-insensitive, prefix enabled analyzer

**URL:** <https://discuss.elastic.co/t/mapping-case-insensitive-prefix-enabled-analyzer/8370>\
**Category:** Elasticsearch\
**Created:** [July 10, 2012, 6:52am UTC](https://discuss.elastic.co/t/mapping-case-insensitive-prefix-enabled-analyzer/8370 "2012-07-10T06:52:48Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![vishalshukla](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/vishalshukla/32/2820_2.png) [@vishalshukla](https://discuss.elastic.co/u/vishalshukla)\
**Post date:** [July 10, 2012, 6:52am UTC](https://discuss.elastic.co/t/mapping-case-insensitive-prefix-enabled-analyzer/8370/1 "2012-07-10T06:52:48Z")

</div>

I need to have a string field, which should be case-INsensitive & it should consider complete text as a "term". So if I have a field with value like "userName":"Vishal Shukla".

The document

1. should be returned in search like this: "userName":"vishal shukla"
2. should be returned in some sort of prefix search with "userName":"vish"
3. should NOT return result if search term is "userName":"shu"

Tried with "not\_analyzed" field, which makes it case-sensitive. "keyword\_lowercase" custom analyzer would fail in case 3 above.

Please suggest how should I work around this problem.

---

<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 6, 2017, 3:20am UTC](https://discuss.elastic.co/t/mapping-case-insensitive-prefix-enabled-analyzer/8370/2 "2017-07-06T03:20:48Z")

</div>


