Taras Kohut
Taras Kohut

Reputation: 2555

Elasticsearch: aggregate nested objects

I have the data in the following structure

"mappings" : {
            "PERSON" : {
                "properties" : {
                    "ADDRESS" : {
                        "type": "nested",
                        "properties" : {
                        "STREET" : {
                            "type": "nested",
                            "properties" : {
                                "street": {
                                    "type": "string"
                                },
                                "number": {
                                "type": "integer"
                                }
                            }
                        },
                        "CITY" : {
                            "type": "nested",
                            "properties" : {
                                "name": {
                                    "type": "string"
                                },
                                "size": {
                                "type": "integer"
                                }
                            }
                        }
                        ,
                        "country": {
                            "type": "string"
                        }
                        }
                    },
                    "INFORMATION" : {
                        "type": "nested",
                        "properties" : {
                        "age": {
                            "type": "integer"
                        },
                        "sex": {
                            "type": "string"
                        }
                        }
                    }
                    "name" : {
                        "type": "string",
                    }
                }
            }
        }

I want to aggregate nested object dynamically in form: ["object type": count of records with this type].

e.g. for the PERSON I want to get something like:

[ADDRESS: 1000, INFORMATION: 1230]

and for ADDRESS:

[STREET: 200, CITY: 100]

Is it possible?

Upvotes: 0

Views: 77

Answers (1)

Hugo
Hugo

Reputation: 254

You can first filter based on PERSON or ADDRESS and then use cardinality aggregation to get the count

Upvotes: 1

Related Questions