Skip to content

Commit

Permalink
[DOCS] Reformat put mapping API docs (#45709)
Browse files Browse the repository at this point in the history
  • Loading branch information
jrodewig committed Aug 23, 2019
1 parent 015d4d4 commit 1eeccf0
Show file tree
Hide file tree
Showing 2 changed files with 105 additions and 23 deletions.
127 changes: 104 additions & 23 deletions docs/reference/indices/put-mapping.asciidoc
Original file line number Diff line number Diff line change
@@ -1,43 +1,124 @@
[[indices-put-mapping]]
=== Put Mapping
=== Put mapping API
++++
<titleabbrev>Put mapping</titleabbrev>
++++

The PUT mapping API allows you to add fields to an existing index or to change search only settings of existing fields.
Adds new fields to an existing index or changes the search settings of existing
fields.

[source,js]
--------------------------------------------------
PUT twitter <1>
{}
PUT twitter/_mapping <2>
----
PUT /twitter/_mapping
{
"properties": {
"email": {
"type": "keyword"
}
}
}
--------------------------------------------------
----
// CONSOLE
// TEST[setup:twitter]

NOTE: Before 7.0.0, the 'mappings' definition used to include a type name.
Although specifying types in requests is now deprecated, a type can still be
provided if the request parameter `include_type_name` is set. For more details,
please see <<removal-of-types>>.


[[put-mapping-api-request]]
==== {api-request-title}

`PUT /{index}/_mapping`

`PUT /_mapping`


[[put-mapping-api-path-params]]
==== {api-path-parms-title}

include::{docdir}/rest-api/common-parms.asciidoc[tag=index]
+
To update the mapping of all indices, omit this parameter or use a value of
`_all`.


[[put-mapping-api-query-params]]
==== {api-query-parms-title}

include::{docdir}/rest-api/common-parms.asciidoc[tag=allow-no-indices]

include::{docdir}/rest-api/common-parms.asciidoc[tag=expand-wildcards]
+
Defaults to `open`.

include::{docdir}/rest-api/common-parms.asciidoc[tag=include-type-name]

include::{docdir}/rest-api/common-parms.asciidoc[tag=index-ignore-unavailable]

include::{docdir}/rest-api/common-parms.asciidoc[tag=timeoutparms]


[[put-mapping-api-request-body]]
==== {api-request-body-title}

`properties`::
+
--
(Required, <<mapping,mapping object>>) Mapping for a field. For new
fields, this mapping can include:

* Field name
* <<field-datatypes,Field datatype>>
* <<mapping-params,Mapping parameters>>

For existing fields, see <<updating-field-mappings>>.
--


[[put-mapping-api-example]]
==== {api-examples-title}

[[put-field-mapping-api-basic-ex]]
===== Example with index setup

The put mapping API requires an existing index. The following
<<indices-create-index, create index>> API request creates the `publications`
index with no mapping.

[source,js]
----
PUT /publications
----
// CONSOLE
<1> <<indices-create-index,Creates an index>> called `twitter` without any mapping.
<2> Uses the PUT mapping API to add a new field called `email`.

More information on how to define mappings can be found in the <<mapping,mapping>> section.
The following put mapping API request adds `title`, a new <<text,`text`>> field,
to the `publications` index.

NOTE: Before 7.0.0, the 'mappings' definition used to include a type name. Although specifying
types in requests is now deprecated, a type can still be provided if the request parameter
include_type_name is set. For more details, please see <<removal-of-types>>.
[source,js]
----
PUT /publications/_mapping
{
"properties": {
"title": { "type": "text"}
}
}
----
// CONSOLE
// TEST[continued]

[float]
==== Multi-index
[[put-mapping-api-multi-ex]]
===== Multiple indices

The PUT mapping API can be applied to multiple indices with a single request.
For example, we can update the `twitter-1` and `twitter-2` mappings at the same time:

[source,js]
--------------------------------------------------
# Create the two indices
PUT twitter-1
PUT twitter-2
PUT /twitter-1
PUT /twitter-2
# Update both mappings
PUT /twitter-1,twitter-2/_mapping <1>
Expand All @@ -50,12 +131,12 @@ PUT /twitter-1,twitter-2/_mapping <1>
}
--------------------------------------------------
// CONSOLE
<1> Note that the indices specified (`twitter-1,twitter-2`) follows <<multi-index,multiple index names>> and wildcard format.
// TEST[setup:twitter]

<1> Note that the indices specified (`twitter-1,twitter-2`) follows <<multi-index,multiple index names>> and wildcard format.

[[updating-field-mappings]]
[float]
==== Updating field mappings
===== Update an existing field

// tag::put-field-mapping-exceptions[]

Expand All @@ -79,7 +160,7 @@ For example:

[source,js]
-----------------------------------
PUT my_index <1>
PUT /my_index <1>
{
"mappings": {
"properties": {
Expand All @@ -97,7 +178,7 @@ PUT my_index <1>
}
}
PUT my_index/_mapping
PUT /my_index/_mapping
{
"properties": {
"name": {
Expand Down
1 change: 1 addition & 0 deletions docs/reference/mapping.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ document.


[float]
[[field-datatypes]]
== Field datatypes

Each field has a data `type` which can be:
Expand Down

0 comments on commit 1eeccf0

Please sign in to comment.