Skip to content

Files

Latest commit

 

History

History
248 lines (200 loc) · 6.35 KB

get-field-mapping.asciidoc

File metadata and controls

248 lines (200 loc) · 6.35 KB

Get field mapping API

Get field mapping

Retrieves mapping definitions for one or more fields. For data streams, the API retrieves field mappings for the stream’s backing indices.

This API is useful if you don’t need a complete mapping or if an index mapping contains a large number of fields.

GET /my-index-000001/_mapping/field/user

{api-request-title}

GET /_mapping/field/<field>

GET /<target>/_mapping/field/<field>

{api-prereq-title}

  • If the {es} {security-features} are enabled, you must have the view_index_metadata or manage index privilege for the target data stream, index, or alias.

{api-path-parms-title}

<target>

(Optional, string) Comma-separated list of data streams, indices, and aliases used to limit the request. Supports wildcards (). To target all data streams and indices, omit this parameter or use or _all.

<field>

(Optional, string) Comma-separated list or wildcard expression of fields used to limit returned information.

{api-query-parms-title}

+ Defaults to true.

include_defaults

(Optional, Boolean) If true, the response includes default mapping values. Defaults to false.

{api-examples-title}

Example with index setup

You can provide field mappings when creating a new index. The following create index API request creates the publications index with several field mappings.

PUT /publications
{
  "mappings": {
    "properties": {
      "id": { "type": "text" },
      "title": { "type": "text" },
      "abstract": { "type": "text" },
      "author": {
        "properties": {
          "id": { "type": "text" },
          "name": { "type": "text" }
        }
      }
    }
  }
}

The following returns the mapping of the field title only:

GET publications/_mapping/field/title

The API returns the following response:

{
   "publications": {
      "mappings": {
          "title": {
             "full_name": "title",
             "mapping": {
                "title": {
                   "type": "text"
                }
             }
          }
       }
   }
}
Specifying fields

The get mapping API allows you to specify a comma-separated list of fields.

For instance to select the id of the author field, you must use its full name author.id.

GET publications/_mapping/field/author.id,abstract,name

returns:

{
   "publications": {
      "mappings": {
        "author.id": {
           "full_name": "author.id",
           "mapping": {
              "id": {
                 "type": "text"
              }
           }
        },
        "abstract": {
           "full_name": "abstract",
           "mapping": {
              "abstract": {
                 "type": "text"
              }
           }
        }
     }
   }
}

The get field mapping API also supports wildcard notation.

GET publications/_mapping/field/a*

returns:

{
   "publications": {
      "mappings": {
         "author.name": {
            "full_name": "author.name",
            "mapping": {
               "name": {
                 "type": "text"
               }
            }
         },
         "abstract": {
            "full_name": "abstract",
            "mapping": {
               "abstract": {
                  "type": "text"
               }
            }
         },
         "author.id": {
            "full_name": "author.id",
            "mapping": {
               "id": {
                  "type": "text"
               }
            }
         }
      }
   }
}
Multiple targets and fields

The get field mapping API can be used to get mappings for multiple fields from multiple data streams or indices with a single request.

The <target> and <field> request path parameters both support comma-separated lists and wildcard expressions.

You can omit the <target> parameter or use a value of * or _all to target all data streams and indices in a cluster.

Similarly, you can omit the <field> parameter or use a value of * to retrieve mappings for all fields in the targeted data streams or indices. However, the <field> parameter does not support the _all value.

For example, the following request retrieves mappings for the message field in any data stream or index named my-index-000001 or my-index-000002.

GET /my-index-000001,my-index-000002/_mapping/field/message

The following request retrieves mappings for the message and user.id fields in any data stream or index in the cluster.

GET /_all/_mapping/field/message

The following request retrieves mappings for fields with an id property in any data stream or index in the cluster.

GET /_all/_mapping/field/*.id