gpt4 book ai didi

elasticsearch - Elasticsearch更新嵌套对象

转载 作者:行者123 更新时间:2023-12-02 22:22:57 24 4
gpt4 key购买 nike

我在互联网上发现了同样的问题,但我不了解解决方案。
问题是,如何在不更新所有数组的情况下更新Nestend文档。非常感谢。

这是一个带鼻孔的文件

"links": [
[
{
"note_link_id": "1",
"user_id": "11",
"creation": "2016-11-15T11:21:10",
"modification": "2016-11-15T13:38:04",
"to_asset": "100",
"from_asset": "99",
"comment": "Comment 1."
},
{
"note_link_id": "2",
"user_id": "11",
"creation": "2016-11-15T13:37:04",
"modification": "2016-11-15T13:37:27",
"to_asset": "101",
"from_asset": "99",
"comment": "Comment 2."
},
{
"note_link_id": "3",
"user_id": "11",
"creation": "2016-11-15T14:01:27",
"modification": "2016-11-15T14:02:52",
"to_asset": "102",
"from_asset": "99",
"comment": "Comment 3."
}
]
],

问题:如何更新“note_link_id”:“2”并仅更新来自
“评论2”改为“blja blja blja”

我重复一遍,如何更新此数组而不更新所有字段,例如
“note_link_id”:“1”,“note_link_id”:“2”和“note_link_id”:“3”

谢谢

最佳答案

您可以尝试使用部分更新和某些脚本语言。脚本看起来或多或少(在这里是时髦的)如下:

if (ctx._source.links != null) {
for (item in ctx._source.links) {
if (item.note_link_id == params.link_id_param) {
item.comment = params.comment_param;
}
}
}

然后将脚本与Update API结合使用:
POST /index_name/type_name/document_id/_update
{
"script" : "...",
"params" : {
"link_id_param" : "2",
"comment_param" : "blja blja blja"
}
}

只需记住,Elasticsearch中的文档是不可变的,因此从技术上讲整个文档将被重新索引。

关于elasticsearch - Elasticsearch更新嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45234391/

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