1

=======update here ====

i changed data_list to be nested and in mapping i set type to be `object'. the following is my new aggregation query:

"aggs": 
{
    "data_result": {
      "nested": {
        "path": "data_list"
      }, 
      "aggs": {
        "id": {
          "terms": {"field":"data_list.id"},
          "aggs":{
          "values": {
            "reverse_nested": {}, 
            "aggs": {
              "value_item": {
                "terms": {
                  "field": "data_list.value"
                }
              }
            }

          }
        }
        }

      }

    }

}

but i got empty `values` bucket

=========================the following is original question ==================== i am trying to get aggregation result from Elasticsearch. My data structure is as following:

DOC 1: 
"data_list": [
    {
        "id": 1,
        "name": "a",
        "value": "a_value1"
    },
    {
        "id": 2,
        "name": "b",
        "value": "b_value1"
    }
]

DOC 2: 
"data_list": [
    {
        "id": 1,
        "name": "a",
        "value": "a_value2"
    },
    {
        "id": 2,
        "name": "b",
        "value": "b_value2"
    }
]

My elasticsearch query is :

"aggs": {
    "data_result" : { 
        "terms" : {"field" : "data_list.id"} ,
        "aggs": {
            "values": {
                "terms": {"field": "data_list.value"}
            }
        }
    }
}

what i want is to get a result as following:

"aggregations": {
    ...
    "data_result": {
        "buckets": [
             {
                 "key": 1,
                 "values": ["a_value1","a_value2"]
             },
             {
                 "key": 2,
                 "values": ["b_value1","b_value2"]
             },
        ]
    }
}

but what i got is :

"buckets": [
     {
         "key": 1,
         "values": ["a_value1","a_value2","b_value1","b_value2"]
     },
     {
         "key": 2,
         "values": ["a_value1","a_value2","b_value1","b_value2"]
     }
]

does anyone has any idea how should i change aggregation query?

2
  • You should define your data_list as nested. the default type is object. Commented Jun 22, 2017 at 8:25
  • nested datatype and nested aggregation works Commented Jun 22, 2017 at 9:41

2 Answers 2

2

you may want to take a look at nested datatype and the nested aggregation

--Alex

Sign up to request clarification or add additional context in comments.

1 Comment

nested datatype and nested aggregation works, thanks
0

this should work

PUT nested_index1
{
  "mappings": {
    "document_type" : {
      "properties": {
        "data_list" : {
          "type": "nested",
          "properties": {
            "value" : {
              "type" : "text",
              "fields" : {
                "raw" : {
                  "type" : "keyword"
                }
              }
            }
          }
        }
      }
    }
  }
}


POST nested_index1/document_type
{"data_list": [
    {
        "id": 1,
        "name": "a",
        "value": "a_value1"
    },
    {
        "id": 2,
        "name": "b",
        "value": "b_value1"
    }
]}

POST nested_index1/document_type
{
  "data_list": [
    {
        "id": 1,
        "name": "a",
        "value": "a_value2"
    },
    {
        "id": 2,
        "name": "b",
        "value": "b_value2"
    }
]
}


POST nested_index1/document_type/_search
{
  "size": 0, 
  "aggs": {
    "nested_agg": {
      "nested": {
        "path": "data_list"
      },
      "aggs": {
        "data_list_id": {
          "terms": {
            "field": "data_list.id",
            "size": 10
          },
          "aggs": {
            "data_list_value": {
              "terms": {
                "field": "data_list.value.raw",
                "size": 10
              }
            }
          }
        }
      }
    }
  }
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.