Create or update mappings

Introduced 1.0

If you want to create or add mappings and fields to an index, you can use the put mapping API operation. For an existing mapping, this operation updates the mapping.

You can’t use this operation to update mappings that already map to existing data in the index. You must first create a new index with your desired mappings, and then use the reindex API operation to map all the documents from your old index to the new index. If you don’t want any downtime while you re-index your indexes, you can use aliases.

Path and HTTP methods

  1. PUT /<target-index>/_mapping
  2. PUT /<target-index1>,<target-index2>/_mapping

Path parameters

The only required path parameter is the index with which to associate the mapping. If you don’t specify an index, you will get an error. You can specify a single index, or multiple indexes separated by a comma as follows:

  1. PUT /<target-index>/_mapping
  2. PUT /<target-index1>,<target-index2>/_mapping

Query parameters

Optionally, you can add query parameters to make a more specific request. For example, to skip any missing or closed indexes in the response, you can add the ignore_unavailable query parameter to your request as follows:

  1. PUT /sample-index/_mapping?ignore_unavailable

The following table defines the put mapping query parameters:

ParameterData typeDescription
allow_no_indicesBooleanWhether to ignore wildcards that don’t match any indexes. Default is true.
expand_wildcardsStringExpands wildcard expressions to different indexes. Combine multiple values with commas. Available values are all (match all indexes), open (match open indexes), closed (match closed indexes), hidden (match hidden indexes), and none (do not accept wildcard expressions), which must be used with open, closed, or both. Default is open.
ignore_unavailableBooleanIf true, OpenSearch does not include missing or closed indexes in the response.
cluster_manager_timeoutTimeHow long to wait for a connection to the cluster manager node. Default is 30s.
timeoutTimeHow long to wait for the response to return. Default is 30s.
write_index_onlyBooleanWhether OpenSearch should apply mapping updates only to the write index.

Request body fields

properties

The request body must contain properties, which has all of the mappings that you want to create or update.

  1. {
  2. "properties":{
  3. "color":{
  4. "type": "text"
  5. },
  6. "year":{
  7. "type": "integer"
  8. }
  9. }
  10. }

dynamic

You can make the document structure match the structure of the index mapping by setting the dynamic request body field to strict, as seen in the following example:

  1. {
  2. "dynamic": "strict",
  3. "properties":{
  4. "color":{
  5. "type": "text"
  6. }
  7. }
  8. }

Example request

The following request creates a new mapping for the sample-index index:

  1. PUT /sample-index/_mapping
  2. {
  3. "properties": {
  4. "age": {
  5. "type": "integer"
  6. },
  7. "occupation":{
  8. "type": "text"
  9. }
  10. }
  11. }

copy

Example response

Upon success, the response returns "acknowledged": true.

  1. {
  2. "acknowledged": true
  3. }