# I need help asap please for fieldData

**URL:** <https://discuss.elastic.co/t/i-need-help-asap-please-for-fielddata/232144>\
**Category:** Elasticsearch\
**Created:** [May 12, 2020, 6:49am UTC](https://discuss.elastic.co/t/i-need-help-asap-please-for-fielddata/232144 "2020-05-12T06:49:46Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![esam\_bassam](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/esam_bassam/32/68092_2.png) [@esam\_bassam](https://discuss.elastic.co/u/esam_bassam)\
**Post date:** [May 12, 2020, 6:49am UTC](https://discuss.elastic.co/t/i-need-help-asap-please-for-fielddata/232144/1 "2020-05-12T06:49:47Z")

</div>

I am wrote this code to make aggregation :

public static void createIndex() throws IOException {

```auto
    CreateIndexRequest request = new CreateIndexRequest("testindexcreate2");
    request.settings(Settings.builder()
            .put("index.number_of_shards", 3)
            .put("index.number_of_replicas", 2)
    );

    XContentBuilder builder = XContentFactory.jsonBuilder();
    builder.startObject();
    {
        builder.startObject("properties");
        {
            builder.startObject("message");
            {
                builder.field("type", "text");
                builder.field("fielddata",true);
            }
            builder.endObject();
        }
        builder.endObject();
    }
    builder.endObject();
    request.mapping(String.valueOf(builder));
    CreateIndexResponse createIndexResponse = restHighLevelClient.indices().create(request, RequestOptions.DEFAULT);

}

```

public static void getAggregation() throws IOException {  
MinAggregationBuilder aggregation =  
AggregationBuilders  
.min("agg")  
.field("salary");

```auto
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    SearchRequest searchRequest = new SearchRequest();
    searchSourceBuilder.aggregation(aggregation);
    searchRequest.source(searchSourceBuilder);

    SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
    System.out.println(searchResponse);
    Min agg = searchResponse.getAggregations().get("agg");

    System.out.println(agg.getValue());
}

```

\*\*\*\* The problem is fielddata must equal true , i already define it equal true above ,, what the problem ?

Please help me

---

<div class="post-metadata">

**Author:** ![Mark\_Harwood](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mark_harwood/32/10538_2.png) [@Mark\_Harwood](https://discuss.elastic.co/u/Mark_Harwood)\
**Post date:** [May 12, 2020, 8:31am UTC](https://discuss.elastic.co/t/i-need-help-asap-please-for-fielddata/232144/2 "2020-05-12T08:31:55Z")

</div>

Your indexing code and search code use different field names?  
"message" vs "salary".  
Asking for the minimum of salary makes sense as opposed to asking for the min of message.

---

<div class="post-metadata">

**Author:** ![esam\_bassam](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/esam_bassam/32/68092_2.png) [@esam\_bassam](https://discuss.elastic.co/u/esam_bassam)\
**Post date:** [May 12, 2020, 9:06am UTC](https://discuss.elastic.co/t/i-need-help-asap-please-for-fielddata/232144/3 "2020-05-12T09:06:09Z")

</div>

insted of salary , i need to define field like this

XContentBuilder builder = XContentFactory.jsonBuilder();  
builder.startObject();  
{  
builder.startObject("properties");  
{  
builder.startObject("message");  
{  
builder.field("id", "text");  
builder.field("fielddata",true);  
}  
builder.startObject("");  
{  
builder.field("age", "text");  
builder.field("fielddata",true);  
}  
{  
builder.field("salary", "text");  
builder.field("fielddata",true);  
}  
builder.endObject();  
}  
builder.endObject();  
}

---

<div class="post-metadata">

**Author:** ![Mark\_Harwood](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mark_harwood/32/10538_2.png) [@Mark\_Harwood](https://discuss.elastic.co/u/Mark_Harwood)\
**Post date:** [May 12, 2020, 9:29am UTC](https://discuss.elastic.co/t/i-need-help-asap-please-for-fielddata/232144/4 "2020-05-12T09:29:27Z")

</div>

I'm not sure why you would consider age and salary as a text type instead of numbers.

---

<div class="post-metadata">

**Author:** ![esam\_bassam](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/esam_bassam/32/68092_2.png) [@esam\_bassam](https://discuss.elastic.co/u/esam_bassam)\
**Post date:** [May 12, 2020, 9:41am UTC](https://discuss.elastic.co/t/i-need-help-asap-please-for-fielddata/232144/5 "2020-05-12T09:41:22Z")

</div>

i make like this

public static void insertNewRecord(TestIndexDoc indexDoc) throws IOException {

```
    Map<String, Object> dataMap = new HashMap<String, Object>();
    dataMap.put("id", indexDoc.getId());
    dataMap.put("age", indexDoc.getAge());
    dataMap.put("salary",indexDoc.getSalary());
    IndexRequest indexRequest = new IndexRequest( "testindexcreate5")
            .source(dataMap);
    IndexResponse response = restHighLevelClient.index(indexRequest , RequestOptions.DEFAULT);
}

```

* * *

and aggregation code :

public static void getAggregation() throws IOException {  
MinAggregationBuilder aggregation =  
AggregationBuilders  
.min("agg")  
.field("salary");

```
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    SearchRequest searchRequest = new SearchRequest();
    searchRequest.indices("testindexcreate5");
    searchSourceBuilder.aggregation(aggregation);
    searchRequest.source(searchSourceBuilder);

    SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
    Min agg = searchResponse.getAggregations().get("agg");

    System.out.println(agg.getValue());
}

```

its same problem ?

---

<div class="post-metadata">

**Author:** ![esam\_bassam](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/esam_bassam/32/68092_2.png) [@esam\_bassam](https://discuss.elastic.co/u/esam_bassam)\
**Post date:** [May 12, 2020, 9:51am UTC](https://discuss.elastic.co/t/i-need-help-asap-please-for-fielddata/232144/6 "2020-05-12T09:51:11Z")

</div>

this code for create index

public static void createIndex() throws IOException {

```
    CreateIndexRequest request = new CreateIndexRequest("testindexcreate5");
    request.settings(Settings.builder()
            .put("index.number_of_shards", 3)
            .put("index.number_of_replicas", 2)
    );

    XContentBuilder builder = XContentFactory.jsonBuilder();
    builder.startObject();
    {
       // builder.startObject("properties");
        //{
            builder.startObject("id");
            {
                builder.field("type", "number");
                builder.field("fielddata",true);
            }
            builder.endObject();
            builder.startObject("age");
            {
                builder.field("type", "number");
                builder.field("fielddata",true);
            }
            builder.endObject();
            builder.startObject("salary");
            {
                builder.field("type", "number");
                builder.field("fielddata",true);
            }
            builder.endObject();
        //}
     // builder.endObject();
    }
    builder.endObject();
    request.mapping(String.valueOf(builder));
    CreateIndexResponse createIndexResponse = restHighLevelClient.indices().create(request, RequestOptions.DEFAULT);

}
```

---

<div class="post-metadata">

**Author:** ![Mark\_Harwood](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mark_harwood/32/10538_2.png) [@Mark\_Harwood](https://discuss.elastic.co/u/Mark_Harwood)\
**Post date:** [May 12, 2020, 10:04am UTC](https://discuss.elastic.co/t/i-need-help-asap-please-for-fielddata/232144/7 "2020-05-12T10:04:05Z")

</div>

People very rarely need to use fieldData and I don't see any particular reason why you need it here.

See [https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html#before-enabling-fielddata](https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html#before-enabling-fielddata)

---

<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:** [June 9, 2020, 10:08am UTC](https://discuss.elastic.co/t/i-need-help-asap-please-for-fielddata/232144/8 "2020-06-09T10:08:45Z")

</div>

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