| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 | 
[[explicit-mapping]]== Explicit mappingYou know more about your data than {es} can guess, so while dynamicmapping can be useful to get started, at some point you will want to specifyyour own explicit mappings.You can create field mappings when you <<create-mapping,create an index>> and<<add-field-mapping,add fields to an existing index>>.[discrete][[create-mapping]]=== Create an index with an explicit mappingYou can use the <<indices-create-index,create index>> API to create a new indexwith an explicit mapping.[source,console]----PUT /my-index-000001{  "mappings": {    "properties": {      "age":    { "type": "integer" },  <1>      "email":  { "type": "keyword"  }, <2>      "name":   { "type": "text"  }     <3>    }  }}----<1> Creates `age`, an <<number,`integer`>> field<2> Creates `email`, a <<keyword,`keyword`>> field<3> Creates `name`, a <<text,`text`>> field[discrete][[add-field-mapping]]=== Add a field to an existing mappingYou can use the <<indices-put-mapping, update mapping>> API to add one or more newfields to an existing index.The following example adds `employee-id`, a `keyword` field with an<<mapping-index,`index`>> mapping parameter value of `false`. This means valuesfor the `employee-id` field are stored but not indexed or available for search.[source,console]----PUT /my-index-000001/_mapping{  "properties": {    "employee-id": {      "type": "keyword",      "index": false    }  }}----// TEST[continued][discrete][[update-mapping]]=== Update the mapping of a fieldinclude::{es-repo-dir}/indices/put-mapping.asciidoc[tag=change-field-mapping]include::{es-repo-dir}/indices/put-mapping.asciidoc[tag=rename-field][discrete][[view-mapping]]=== View the mapping of an indexYou can use the <<indices-get-mapping, get mapping>> API to view the mapping ofan existing index.[source,console]----GET /my-index-000001/_mapping----// TEST[continued]The API returns the following response:[source,console-result]----{  "my-index-000001" : {    "mappings" : {      "properties" : {        "age" : {          "type" : "integer"        },        "email" : {          "type" : "keyword"        },        "employee-id" : {          "type" : "keyword",          "index" : false        },        "name" : {          "type" : "text"        }      }    }  }}----[discrete][[view-field-mapping]]=== View the mapping of specific fieldsIf you only want to view the mapping of one or more specific fields, you can usethe <<indices-get-field-mapping, get field mapping>> API.This is useful if you don't need the complete mapping of an index or your indexcontains a large number of fields.The following request retrieves the mapping for the `employee-id` field.[source,console]----GET /my-index-000001/_mapping/field/employee-id----// TEST[continued]The API returns the following response:[source,console-result]----{  "my-index-000001" : {    "mappings" : {      "employee-id" : {        "full_name" : "employee-id",        "mapping" : {          "employee-id" : {            "type" : "keyword",            "index" : false          }        }      }    }  }}----
 |