# Query for sum of two nested object fields of a document

**URL:** <https://discuss.elastic.co/t/query-for-sum-of-two-nested-object-fields-of-a-document/127750>\
**Category:** Elasticsearch\
**Created:** [April 12, 2018, 7:29am UTC](https://discuss.elastic.co/t/query-for-sum-of-two-nested-object-fields-of-a-document/127750 "2018-04-12T07:29:07Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![prasad.ram1431](https://avatars.discourse-cdn.com/v4/letter/p/c89c15/32.png) [@prasad.ram1431](https://discuss.elastic.co/u/prasad.ram1431)\
**Post date:** [April 12, 2018, 7:29am UTC](https://discuss.elastic.co/t/query-for-sum-of-two-nested-object-fields-of-a-document/127750/1 "2018-04-12T07:29:07Z")

</div>

Hi All,

Could any one help me for a ES query for sum of two nested object fields of a document,  
for example,  
"\_source": {  
"Identification": {  
"PAYL\_HDR": {  
"DUNS\_NBR": "212003857",  
"GEO\_REF\_ID": "1067",  
"GSRL\_DT": "2017-08-22T15:24:46.000000",  
"INFO\_SRC\_CD": 20008,  
"REC\_TYP\_CD": 11592  
}  
}  
},  
above is the sample data contains in my es document, I need to add **INFO\_SRC\_CD** and **REC\_TYP\_CD** and show the result in a custom field which will be shown along the all fields of \_source.

Please reply me asap.

Thanks & Regards,  
Prasad

---

<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:** [April 12, 2018, 7:42am UTC](https://discuss.elastic.co/t/query-for-sum-of-two-nested-object-fields-of-a-document/127750/2 "2018-04-12T07:42:33Z")

</div>

See the same topic you already opened:

> [@Sum of two fields into a one custom field](https://discuss.elastic.co/t/sum-of-two-fields-into-a-one-custom-field/127600/4):
>
> As long as it's a script it will work with whatever you want. I'm not telling you how to write the script though. Which I don't know as I'm not using painless. I always prefer modifying my data before indexing it.

---

<div class="post-metadata">

**Author:** ![prasad.ram1431](https://avatars.discourse-cdn.com/v4/letter/p/c89c15/32.png) [@prasad.ram1431](https://discuss.elastic.co/u/prasad.ram1431)\
**Post date:** [April 12, 2018, 9:45am UTC](https://discuss.elastic.co/t/query-for-sum-of-two-nested-object-fields-of-a-document/127750/3 "2018-04-12T09:45:46Z")

</div>

concept might be same but, i am unable to access the nested object fields, and also i need sample query for doing sum. Please help me if you can.

---

<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:** [April 12, 2018, 10:05am UTC](https://discuss.elastic.co/t/query-for-sum-of-two-nested-object-fields-of-a-document/127750/4 "2018-04-12T10:05:56Z")

</div>

Could you provide a full recreation script as described in [About the Elasticsearch category](https://discuss.elastic.co/t/about-the-elasticsearch-category/21). It will help to better understand what you are doing. Please, try to keep the example as simple as possible.

A full reproduction script will help readers to understand, reproduce and if needed fix your problem. It will also most likely help to get a faster answer.

---

<div class="post-metadata">

**Author:** ![LGans316](https://avatars.discourse-cdn.com/v4/letter/l/cab0a1/32.png) [@LGans316](https://discuss.elastic.co/u/LGans316)\
**Post date:** [April 13, 2018, 12:53pm UTC](https://discuss.elastic.co/t/query-for-sum-of-two-nested-object-fields-of-a-document/127750/5 "2018-04-13T12:53:39Z")

</div>

Is this what you were after?

**Request**

```
GET /test/_search?pretty
{
  "query": {
    "match_all": {}
  },
  "script_fields": {
    "summedVal": {
      "script": {
        "lang": "painless",
        "source": "doc['Identification.PAYL_HDR.INFO_SRC_CD'].value + doc['Identification.PAYL_HDR.REC_TYP_CD'].value"
      }
    },
    "_source": {
      "script": "params['_source']"
    }
  }
}

```

**Response**

```
{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 2,
    "max_score": 1,
    "hits": [
      {
        "_index": "test",
        "_type": "test",
        "_id": "aZwPv2IBJc3N3Ppar0XH",
        "_score": 1,
        "fields": {
          "_source": [
            {
              "Identification": {
                "PAYL_HDR": {
                  "DUNS_NBR": "212003858",
                  "GEO_REF_ID": "1068",
                  "GSRL_DT": "2017-08-22T15:24:46.000000",
                  "INFO_SRC_CD": 30008,
                  "REC_TYP_CD": 12592
                }
              }
            }
          ],
          "summedVal": [
            42600
          ]
        }
      },
      {
        "_index": "test",
        "_type": "test",
        "_id": "aJwJv2IBJc3N3Ppa_0X1",
        "_score": 1,
        "fields": {
          "_source": [
            {
              "Identification": {
                "PAYL_HDR": {
                  "DUNS_NBR": "212003857",
                  "GEO_REF_ID": "1067",
                  "GSRL_DT": "2017-08-22T15:24:46.000000",
                  "INFO_SRC_CD": 20008,
                  "REC_TYP_CD": 11592
                }
              }
            }
          ],
          "summedVal": [
            31600
          ]
        }
      }
    ]
  }
}
```

---

<div class="post-metadata">

**Author:** ![prasad.ram1431](https://avatars.discourse-cdn.com/v4/letter/p/c89c15/32.png) [@prasad.ram1431](https://discuss.elastic.co/u/prasad.ram1431)\
**Post date:** [April 13, 2018, 1:57pm UTC](https://discuss.elastic.co/t/query-for-sum-of-two-nested-object-fields-of-a-document/127750/6 "2018-04-13T13:57:39Z")

</div>

Yes, thank you very much for your response. But when I hit this request, I am getting the below runtime error.

Fielddata is disabled on text fields by default. Set fielddata=true on [Identification.PAYL\_HDR.INFO\_SRC\_CD] 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.

Could you please help me on this.

---

<div class="post-metadata">

**Author:** ![prasad.ram1431](https://avatars.discourse-cdn.com/v4/letter/p/c89c15/32.png) [@prasad.ram1431](https://discuss.elastic.co/u/prasad.ram1431)\
**Post date:** [April 13, 2018, 2:09pm UTC](https://discuss.elastic.co/t/query-for-sum-of-two-nested-object-fields-of-a-document/127750/7 "2018-04-13T14:09:35Z")

</div>

Hi Ganesh,

Thank you very much for your reply. I am able to solve my issue. with the below format.

"script\_fields": {  
"summedVal": {  
"script": {  
"lang": "painless",  
"source": "doc['Identification.PAYL\_HDR.INFO\_SRC\_CD.keyword'].value + doc['Identification.PAYL\_HDR.REC\_TYP\_CD.keyword'].value"  
}  
}  
}

Once again thank you very much for your help.

Thanks & Regards,  
Ram Prasad

---

<div class="post-metadata">

**Author:** ![LGans316](https://avatars.discourse-cdn.com/v4/letter/l/cab0a1/32.png) [@LGans316](https://discuss.elastic.co/u/LGans316)\
**Post date:** [April 14, 2018, 6:33am UTC](https://discuss.elastic.co/t/query-for-sum-of-two-nested-object-fields-of-a-document/127750/8 "2018-04-14T06:33:27Z")

</div>

If it works with keyword, it means the field is most likely defined as a keyword in the mapping. You must check your mapping and consider updating these fields to integer or long as you wanted to sum these 2 fields.

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

---

<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 12, 2018, 6:33am UTC](https://discuss.elastic.co/t/query-for-sum-of-two-nested-object-fields-of-a-document/127750/9 "2018-05-12T06:33:32Z")

</div>

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