ElasticSearch Error – illegal_argument_exception – Rejecting mapping update to type

By | July 10, 2019
########### COMMAND #################
curl -XPUT 'localhost:9200/products/laptops/4?pretty' -H 'Content-Type: application/json' -d'
{
  "name": "Macbook Pro",
  "storage": "500GB",
  "RAM": "8GB",
  "display": "13inch",
  "os": "El Capitan",
  "reviews": ["A little bulky but a great Mac laptop", "The larger storage capacity is great"]
}
'
########### OUTPUT ###########
[ec2-user@ip-172-31-5-179 ~]$ curl -XPUT 'localhost:9200/products/laptops/4?pretty' -H 'Content-Type: application/json' -d'
> {
>   "name": "Macbook Pro",
>   "storage": "500GB",
>   "RAM": "8GB",
>   "display": "13inch",
>   "os": "El Capitan",
>   "reviews": ["A little bulky but a great Mac laptop", "The larger storage capacity is great"]
> }
> '
{
  "error" : {
    "root_cause" : [
      {
        "type" : "illegal_argument_exception",
        "reason" : "Rejecting mapping update to [products] as the final mapping would have more than 1 type: [mobiles, laptops]"
      }
    ],
    "type" : "illegal_argument_exception",
    "reason" : "Rejecting mapping update to [products] as the final mapping would have more than 1 type: [mobiles, laptops]"
  },
  "status" : 400
}

Solution

Multiple mapping types are not supported in indices created in 6.0
The ability to have multiple mapping types per index has been removed in 6.0. New indices will be restricted to a single type. This is the first step in the plan to remove mapping types altogether. Indices created in 5.x will continue to support multiple mapping types.

curl -XPUT 'localhost:9200/products-temp/laptops/1?pretty' -H 'Content-Type: application/json' -d'
{
  "name": "Macbook Pro",
  "storage": "500GB",
  "RAM": "8GB",
  "display": "13inch",
  "os": "El Capitan",
  "reviews": ["A little bulky but a great Mac laptop", "The larger storage capacity is great"]
}
'

Leave a Reply