# Term panel in Kibana breaks the field value based on hyphen('-),space(' ') and on many more

**URL:** <https://discuss.elastic.co/t/term-panel-in-kibana-breaks-the-field-value-based-on-hyphen-space-and-on-many-more/46096>\
**Category:** Kibana\
**Created:** [April 1, 2016, 8:09pm UTC](https://discuss.elastic.co/t/term-panel-in-kibana-breaks-the-field-value-based-on-hyphen-space-and-on-many-more/46096 "2016-04-01T20:09:56Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rajeev\_Gaurav](https://avatars.discourse-cdn.com/v4/letter/r/3d9bf3/32.png) [@Rajeev\_Gaurav](https://discuss.elastic.co/u/Rajeev_Gaurav)\
**Post date:** [April 1, 2016, 8:09pm UTC](https://discuss.elastic.co/t/term-panel-in-kibana-breaks-the-field-value-based-on-hyphen-space-and-on-many-more/46096/1 "2016-04-01T20:09:56Z")

</div>

Log stash is reading the file and sending it to kibana but the terms panel split the field value (for eg. prod-Mumbai-22201 in to three field values such as prod, Mumbai,22201). Kindly help me so that I can resolve it programmatically.  
I heard of mapping but don't have much idea about that.

---

<div class="post-metadata">

**Author:** ![MarkOStewart](https://avatars.discourse-cdn.com/v4/letter/m/898d66/32.png) [@MarkOStewart](https://discuss.elastic.co/u/MarkOStewart)\
**Post date:** [April 1, 2016, 8:29pm UTC](https://discuss.elastic.co/t/term-panel-in-kibana-breaks-the-field-value-based-on-hyphen-space-and-on-many-more/46096/2 "2016-04-01T20:29:27Z")

</div>

Possibly an analyzer is changing your data.

See if this helps

[https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-pattern-analyzer.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-pattern-analyzer.html)

Specifically the non word analysis section

[https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-pattern-analyzer.html#\_non\_word\_character\_tokenizer](https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-pattern-analyzer.html#_non_word_character_tokenizer)

---

<div class="post-metadata">

**Author:** ![Rajeev\_Gaurav](https://avatars.discourse-cdn.com/v4/letter/r/3d9bf3/32.png) [@Rajeev\_Gaurav](https://discuss.elastic.co/u/Rajeev_Gaurav)\
**Post date:** [April 5, 2016, 5:39am UTC](https://discuss.elastic.co/t/term-panel-in-kibana-breaks-the-field-value-based-on-hyphen-space-and-on-many-more/46096/3 "2016-04-05T05:39:26Z")

</div>

I am able to see the mapping which tells that the required field is string and analysed by default. How can I update the mapping for all the fields which I want to be non analysed.

---

<div class="post-metadata">

**Author:** ![MarkOStewart](https://avatars.discourse-cdn.com/v4/letter/m/898d66/32.png) [@MarkOStewart](https://discuss.elastic.co/u/MarkOStewart)\
**Post date:** [April 19, 2016, 2:24pm UTC](https://discuss.elastic.co/t/term-panel-in-kibana-breaks-the-field-value-based-on-hyphen-space-and-on-many-more/46096/4 "2016-04-19T14:24:56Z")

</div>

Rajeev,  
You have to create a new empty index with your new mapping requirements and then reindex the data to the new index.  
You cannot change mapping after index creation.

> **[Changing Mapping with Zero Downtime
	  	 | Elastic](https://www.elastic.co/blog/changing-mapping-with-zero-downtime)**
>
> Update November 2, 2015: Make sure to check out the updates with Elasticsearch mappings introduced in the 2.0 release.Update May 1, 2017: This blog was originally published several major versions...

---

<div class="post-metadata">

**Author:** ![Rajeev\_Gaurav](https://avatars.discourse-cdn.com/v4/letter/r/3d9bf3/32.png) [@Rajeev\_Gaurav](https://discuss.elastic.co/u/Rajeev_Gaurav)\
**Post date:** [April 20, 2016, 7:41am UTC](https://discuss.elastic.co/t/term-panel-in-kibana-breaks-the-field-value-based-on-hyphen-space-and-on-many-more/46096/5 "2016-04-20T07:41:19Z")

</div>

Hi Mark,

Can you please tell me how can I have a default mapping for future index.I am using Elastic search 2.2 ,logstash 2.2 and Kibana 4.4 in windows. It will be great help for me so kindly let me know in detail.

Thanks,  
Rajeev

---

<div class="post-metadata">

**Author:** ![MarkOStewart](https://avatars.discourse-cdn.com/v4/letter/m/898d66/32.png) [@MarkOStewart](https://discuss.elastic.co/u/MarkOStewart)\
**Post date:** [May 12, 2016, 4:15pm UTC](https://discuss.elastic.co/t/term-panel-in-kibana-breaks-the-field-value-based-on-hyphen-space-and-on-many-more/46096/6 "2016-05-12T16:15:08Z")

</div>

Rajeev  
Create a dynamic mapping template.

This will catch all new indices created with similar name strings and apply a dynamic mapping to the index upon creation. It is too long to reiterate so here is the link.

[https://www.elastic.co/guide/en/elasticsearch/guide/current/custom-dynamic-mapping.html#dynamic-templates](https://www.elastic.co/guide/en/elasticsearch/guide/current/custom-dynamic-mapping.html#dynamic-templates)

---

<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, 1:53pm UTC](https://discuss.elastic.co/t/term-panel-in-kibana-breaks-the-field-value-based-on-hyphen-space-and-on-many-more/46096/7 "2017-07-06T13:53:31Z")

</div>


