Get field mapping API

edit

Retrieves mapping definitions for one or more fields. This is useful if you don’t need the complete mapping of an index or your index contains a large number of fields.

GET /twitter/_mapping/field/user

Request

edit

GET /_mapping/field/<field>

GET /<index>/_mapping/field/<field>

Path parameters

edit
<index>
(Optional, string) Comma-separated list or wildcard expression of index names used to limit the request.
<field>
(Optional, string) Comma-separated list or wildcard expression of fields used to limit returned information.

Query parameters

edit
allow_no_indices

(Optional, boolean) If true, the request does not return an error if a wildcard expression or _all value retrieves only missing or closed indices.

This parameter also applies to index aliases that point to a missing or closed index.

Defaults to true.

expand_wildcards

(Optional, string) Controls what kind of indices that wildcard expressions can expand to. Valid values are:

all
Expand to open and closed indices.
open
Expand only to open indices.
closed
Expand only to closed indices.
none
Wildcard expressions are not accepted.
include_type_name
[7.0.0] Deprecated in 7.0.0. Mapping types have been deprecated. See Removal of mapping types. (Optional, boolean) If true, a mapping type is expected in the body of mappings. Defaults to false.
ignore_unavailable
(Optional, boolean) If true, missing or closed indices are not included in the response. Defaults to false.
include_defaults
(Optional, boolean) If true, the response includes default mapping values. Defaults to false.
local
(Optional, boolean) If true, the request retrieves information from the local node only. Defaults to false, which means information is retrieved from the master node.

Examples

edit

Example with index setup

edit

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

edit

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 indices and fields

edit

The get field mapping API can be used to get the mapping of multiple fields from more than one index with a single call. General usage of the API follows the following syntax: host:port/<index>/_mapping/field/<field> where <index> and <field> can stand for comma-separated list of names or wild cards. To get mappings for all indices you can use _all for <index>. The following are some examples:

GET /twitter,kimchy/_mapping/field/message

GET /_all/_mapping/field/message,user.id

GET /_all/_mapping/field/*.id