Type mappings, object fields and nested fields
contain sub-fields, called properties. These properties may be of any
datatype, including object and nested.  Properties can
be added:
Below is an example of adding properties to a mapping type, an object
field, and a nested field:
PUT my_index
{
  "mappings": {
    "properties": {  "manager": {
        "properties": {
      "manager": {
        "properties": {  "age":  { "type": "integer" },
          "name": { "type": "text"  }
        }
      },
      "employees": {
        "type": "nested",
        "properties": {
          "age":  { "type": "integer" },
          "name": { "type": "text"  }
        }
      },
      "employees": {
        "type": "nested",
        "properties": {  "age":  { "type": "integer" },
          "name": { "type": "text"  }
        }
      }
    }
  }
}
PUT my_index/_doc/1
          "age":  { "type": "integer" },
          "name": { "type": "text"  }
        }
      }
    }
  }
}
PUT my_index/_doc/1  {
  "region": "US",
  "manager": {
    "name": "Alice White",
    "age": 30
  },
  "employees": [
    {
      "name": "John Smith",
      "age": 34
    },
    {
      "name": "Peter Brown",
      "age": 26
    }
  ]
}
{
  "region": "US",
  "manager": {
    "name": "Alice White",
    "age": 30
  },
  "employees": [
    {
      "name": "John Smith",
      "age": 34
    },
    {
      "name": "Peter Brown",
      "age": 26
    }
  ]
}| Properties in the top-level mappings definition. | |
| 
Properties under the  | |
| 
Properties under the  | |
| An example document which corresponds to the above mapping. | 

The properties setting is allowed to have different settings for fields
of the same name in the same index.  New properties can be added to existing
fields using the PUT mapping API.
Inner fields can be referred to in queries, aggregations, etc., using dot notation:
GET my_index/_search
{
  "query": {
    "match": {
      "manager.name": "Alice White"
    }
  },
  "aggs": {
    "Employees": {
      "nested": {
        "path": "employees"
      },
      "aggs": {
        "Employee Ages": {
          "histogram": {
            "field": "employees.age",
            "interval": 5
          }
        }
      }
    }
  }
}
The full path to the inner field must be specified.