gpt4 book ai didi

elasticsearch - PUT 命令上的 Elasticsearch class_cast_exception

转载 作者:行者123 更新时间:2023-12-02 23:33:02 30 4
gpt4 key购买 nike

我正在执行的命令。这是为了创造一个新客户。请参阅下文,了解我如何在 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"
}
}

最佳答案

问题在于您定义了一个名为 _id 的字段。在您的映射中带有初始下划线,ES 不允许这样做,因为它与名为 _id 的默认字段冲突(more info)。您需要删除该字段或将其重命名为 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"
}
}
}
}
}'

然后,您将能够创建示例文档而不会出错:
curl -XPUT localhost:9200/crud_sample/Customer_Info/1 -d '{
"name": "PH"
}'

关于elasticsearch - PUT 命令上的 Elasticsearch class_cast_exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34529645/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com