如何解决elasticsearch-无法通过更新API更新
您好,我正在尝试更新es文档之一中的密集矢量数据,并且即使存在字段,也无法使用映射中不存在的错误字段进行更新
映射:
{
"sidx-4111c0fc-a8ba-523c-9851-34a2b803643b" : {
"mappings" : {
"properties" : {
"dense_vector_field" : {
"type" : "dense_vector","dims" : 768
},"searchResultPreview" : {
"type" : "text","fields" : {
"search_result_preview" : {
"type" : "keyword"
}
}
}
}
}
}
查询-
POST /sidx-4111c0fc-a8ba-523c-9851-34a2b803643b/_update/xLVRVHUB3NwnlUUimDIR
{
"dense_vector_field": [...]
}
错误:
{
"error" : {
"root_cause" : [
{
"type" : "x_content_parse_exception","reason" : "[2:3] [UpdateRequest] unknown field [dense_vector_field]"
}
],"type" : "x_content_parse_exception","reason" : "[2:3] [UpdateRequest] unknown field [dense_vector_field]"
},"status" : 400
}
我在这里想念东西吗?
编辑-由于尺寸过大,忽略了提及矢量数据
解决方法
问题是_update
API期望使用doc
或script
,所以您需要这样:
POST /sidx-4111c0fc-a8ba-523c-9851-34a2b803643b/_update/xLVRVHUB3NwnlUUimDIR
{
"doc": {
"dense_vector_field": [...]
}
}
或者使用script
:
POST /sidx-4111c0fc-a8ba-523c-9851-34a2b803643b/_update/xLVRVHUB3NwnlUUimDIR
{
"script": {
"source": "ctx._source.dense_vector_field = params.vector","params": {
"vector": [...]
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。