# org.elasticsearch.ElasticsearchException$1: Fielddata is disabled on text fields by default

**URL:** <https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313>\
**Category:** Elasticsearch\
**Created:** [May 2, 2019, 8:39am UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313 "2019-05-02T08:39:03Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![manue](https://avatars.discourse-cdn.com/v4/letter/m/f19dbf/32.png) [@manue](https://discuss.elastic.co/u/manue)\
**Post date:** [May 2, 2019, 8:39am UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/1 "2019-05-02T08:39:03Z")

</div>

Could you help me to solver this error?:

> [2019-05-02T10:35:37,497][DEBUG][o.e.a.s.TransportSearchAction] [K-elM\_U] [magento2\_product\_1\_v52][3], node[K-elM\_UTTXCBvlkUTFuglg], [P], s[STARTED], a[id=hUhVYORgQ2GI24nBt3FqDw]: Failed to execute [SearchRequest{searchType=QUERY\_THEN\_FETCH, indices=[magento2\_product\_1]...  
> org.elasticsearch.transport.RemoteTransportException: [K-elM\_U][127.0.0.1:9300][indices:data/read/search[phase/query]]  
> Caused by: java.lang.IllegalArgumentException: Fielddata is disabled on text fields by default. Set fielddata=true on [myparcel\_digital\_stamp] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.  
> at org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:779) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:116) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.index.query.QueryShardContext.getForField(QueryShardContext.java:166) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.aggregations.support.ValuesSourceConfig.resolve(ValuesSourceConfig.java:95) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder.resolveConfig(ValuesSourceAggregationBuilder.java:317) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder.doBuild(ValuesSourceAggregationBuilder.java:310) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder.doBuild(ValuesSourceAggregationBuilder.java:37) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.aggregations.AbstractAggregationBuilder.build(AbstractAggregationBuilder.java:139) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.aggregations.AggregatorFactories$Builder.build(AggregatorFactories.java:335) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.SearchService.parseSource(SearchService.java:811) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.SearchService.createContext(SearchService.java:620) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:595) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:386) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.SearchService.access$100(SearchService.java:125) ~[elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.SearchService$2.onResponse(SearchService.java:358) [elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.SearchService$2.onResponse(SearchService.java:354) [elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.search.SearchService$4.doRun(SearchService.java:1085) [elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:41) [elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:751) [elasticsearch-6.7.1.jar:6.7.1]  
> at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-6.7.1.jar:6.7.1]  
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0\_211]  
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0\_211]  
> at java.lang.Thread.run(Thread.java:748) [?:1.8.0\_211]

---

<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:** [May 2, 2019, 11:47am UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/2 "2019-05-02T11:47:39Z")

</div>

You need to change your mapping if you want to run aggs or sorts.

---

<div class="post-metadata">

**Author:** ![manue](https://avatars.discourse-cdn.com/v4/letter/m/f19dbf/32.png) [@manue](https://discuss.elastic.co/u/manue)\
**Post date:** [May 2, 2019, 11:58am UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/3 "2019-05-02T11:58:53Z")

</div>

Can you tell me how to do this please?

---

<div class="post-metadata">

**Author:** ![johnrabi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/johnrabi/32/67223_2.png) [@johnrabi](https://discuss.elastic.co/u/johnrabi)\
**Post date:** [May 2, 2019, 12:08pm UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/4 "2019-05-02T12:08:27Z")

</div>

hi @manue,  
You can enable fielddata on an existing `text` field using the [PUT mapping API](https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html) as follows:

[https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html)

---

<div class="post-metadata">

**Author:** ![manue](https://avatars.discourse-cdn.com/v4/letter/m/f19dbf/32.png) [@manue](https://discuss.elastic.co/u/manue)\
**Post date:** [May 2, 2019, 12:34pm UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/6 "2019-05-02T12:34:02Z")

</div>

Thank you! This would be the command to solve my problem? (I use the terminal to interact with Elasticsearch)

curl -XPUT "localhost:7900/\*/\_settings" -H 'Content-Type: application/json' -d' { "mappings" : { "properties": { "my\_field": { "type": "text", "fielddata": true } } }}'

---

<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:** [May 2, 2019, 1:07pm UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/7 "2019-05-02T13:07:48Z")

</div>

Some comments:

- You can't change an existing field
- `7900` port is a port I've never seen in Elasticsearch. Did you change the default 9200 port?

---

<div class="post-metadata">

**Author:** ![manue](https://avatars.discourse-cdn.com/v4/letter/m/f19dbf/32.png) [@manue](https://discuss.elastic.co/u/manue)\
**Post date:** [May 2, 2019, 1:19pm UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/8 "2019-05-02T13:19:28Z")

</div>

Yes I change the port, it is ok? So, What would be the command that I have to use?

---

<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:** [May 2, 2019, 1:39pm UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/9 "2019-05-02T13:39:26Z")

</div>

> [@manue](#):
>
> Yes I change the port, it is ok?

Yes. Not a common practice but why not...

> [@manue](#):
>
> What would be the command that I have to use?

1. Delete the index (this will remove all your data)
2. Create the index with the right mapping
3. Reindex your data

---

<div class="post-metadata">

**Author:** ![manue](https://avatars.discourse-cdn.com/v4/letter/m/f19dbf/32.png) [@manue](https://discuss.elastic.co/u/manue)\
**Post date:** [May 2, 2019, 1:58pm UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/10 "2019-05-02T13:58:49Z")

</div>

Excuse me again, I'm new to Elasticsearch and I do not understand how to interact with Elasticsearch using the console. Could you help me with the orders that I have to use to solve my problem? Thank you very much for your help

---

<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:** [May 2, 2019, 2:53pm UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/11 "2019-05-02T14:53:50Z")

</div>

So I'm updating a bit my answer:

1. Delete the index (this will remove all your data). See [https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-index.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-index.html)
2. Create the index with the right mapping. See [https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html#mappings](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html#mappings)
3. Reindex your data. I can't help for this as it depends on where the data is coming from.

---

<div class="post-metadata">

**Author:** ![manue](https://avatars.discourse-cdn.com/v4/letter/m/f19dbf/32.png) [@manue](https://discuss.elastic.co/u/manue)\
**Post date:** [May 2, 2019, 3:02pm UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/12 "2019-05-02T15:02:57Z")

</div>

How can I know the name of my index that I have to do this what you tell me?

---

<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:** [May 2, 2019, 3:21pm UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/13 "2019-05-02T15:21:14Z")

</div>

I don't know what indices you have created but apparently from the logs `magento2_product_1` could be a good candidate.

---

<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:** [May 30, 2019, 3:21pm UTC](https://discuss.elastic.co/t/org-elasticsearch-elasticsearchexception-1-fielddata-is-disabled-on-text-fields-by-default/179313/14 "2019-05-30T15:21:20Z")

</div>

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