我正在执行的命令。它是为了创造一个新客户。请参阅下文,了解我如何在Sense(http://localhost:9200)上使用PUT命令创建客户
PUT /crud_sample/Customer_Info/1
{
"name": "PH"
}
我得到的错误:
{
"error": {
"root_cause": [
{
"type": "class_cast_exception",
"reason": "java.lang.String cannot be cast to java.lang.Number"
}
],
"type": "class_cast_exception",
"reason": "java.lang.String cannot be cast to java.lang.Number"
},
"status": 500
}
正在创建的对象的属性和类型。客户类型。
"properties": {
"_id":{
"type": "long"
},
"name":{
"type": "string",
"index" : "not_analyzed"
}
}
答案 0 :(得分:1)
问题来自于您在映射中定义了一个名为_id
的字段,其中有一个初始下划线,ES不会允许它,因为它与名为{{的默认字段冲突1}}(more info)。您需要删除该字段或将其重命名为_id
。
您需要擦除索引并使用干净的映射重新创建它,如下所示:
id
然后,您将能够无错误地创建示例文档:
curl -XDELETE localhost:9200/crud_sample
curl -XPUT localhost:9200/crud_sample -d '{
"mappings": {
"Customer_Info": {
"properties": {
"id":{
"type": "long"
},
"name":{
"type": "string",
"index" : "not_analyzed"
}
}
}
}
}'