When I read the 2.3 doc on this I see this:
The PUT mapping API allows you to add a new type to an existing index, or new fields to an existing type:
It then lists these three examples:
PUT twitter
{
"mappings": {
"tweet": {
"properties": {
"message": {
"type": "string"
}
}
}
}
}
PUT twitter/_mapping/user
{
"properties": {
"name": {
"type": "string"
}
}
}
PUT twitter/_mapping/tweet
{
"properties": {
"user_name": {
"type": "string"
}
}
}
To me, this implies that any of the three examples would all you to add a new type to an existing index. I now know, since I've tried the other two examples, that only the last two will add a new type to an existing index. At least to me, the doc is inconsistent with the observed behavior.