gpt4 book ai didi

ElasticSearch => 如何使用 update_by_query 更新部分文档

转载 作者:行者123 更新时间:2023-11-29 02:52:35 37 4
gpt4 key购买 nike

我想更新 cname 为 wang 的索引中的数据。我的索引代码如下:

PUT index_c
{
"mappings": {
"_doc" : {
"properties" : {
"cid" : {
"type" : "keyword"
},
"cname" : {
"type" : "keyword"
},
"cage" : {
"type" : "short"
},
"chome" : {
"type" : "text"
}
}
}
}
}

我的更新请求如下:

POST index_c/_update_by_query
{
"query" : {
"match": {
"cname": "wang"
}
},
"doc" : {
"cage" : "100",
"chome" : "china"
}
}

但是我得到了这样的错误:

{
"error": {
"root_cause": [
{
"type": "parsing_exception",
"reason": "Unknown key for a START_OBJECT in [doc].",
"line": 1,
"col": 43
}
],
"type": "parsing_exception",
"reason": "Unknown key for a START_OBJECT in [doc].",
"line": 1,
"col": 43
},
"status": 400
}

所以我想知道如何在使用“update_by_query”时实现这一点

最佳答案

我认为这对您有用,只需将 doc 部分替换为 script。如果 inline 为您显示 deprecated 那么只需使用 source 代替

POST index_c/_update_by_query
{
"query" : {
"match": {
"cname": "wang"
}
},
"script" : {
"inline" : "ctx._source.cage='100'; ctx._source.chome= 'china';",
"lang" : "painless"
}
}

关于ElasticSearch => 如何使用 update_by_query 更新部分文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52731704/

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