使用ElasticSearch創建映射報錯
Root mapping definition has unsupported parameters
原因
使用的ES版本為7.2.0
,不再支持創建指定類型,索引的默認類型為_doc
.
官網圖片
解決辦法
創建索引的映射時,不需要指定類型即可
錯誤再現
錯誤的創建索引語句
PUT /dangdang1
{
"mappings": {
"book":{ # 這里指定了類型type
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "keyword"
},
"price": {
"type": "double"
},
"detail": {
"type": "text"
}
}
}
}
}
報錯信息
{
"error": {
"root_cause": [
{
"type": "mapper_parsing_exception",
"reason": "Root mapping definition has unsupported parameters: [book : {properties={price={type=double}, name={type=keyword}, id={type=integer}, detail={type=text}}}]"
}
],
"type": "mapper_parsing_exception",
"reason": "Failed to parse mapping [_doc]: Root mapping definition has unsupported parameters: [book : {properties={price={type=double}, name={type=keyword}, id={type=integer}, detail={type=text}}}]",
"caused_by": {
"type": "mapper_parsing_exception",
"reason": "Root mapping definition has unsupported parameters: [book : {properties={price={type=double}, name={type=keyword}, id={type=integer}, detail={type=text}}}]"
}
},
"status": 400
}
正確的創建索引映射的語句
PUT /dangdang
{
"mappings": {
# 這里不再寫類型
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "keyword"
},
"price": {
"type": "double"
},
"detail": {
"type": "text"
}
}
}
}