gpt4 book ai didi

elasticsearch - 用于计算数组长度的脚本化字段

转载 作者:行者123 更新时间:2023-12-01 11:20:24 25 4
gpt4 key购买 nike

我有以下文件:

{
"likes": {
"data": [
{
"name": "a"
},
{
"name": "b"
},
{
"name": "c"
}
]
}
}

我正在尝试运行 update_by_query这将添加一个名为“like_count”的字段,其中包含 likes.data 中的数组项数

重要的是要知道并非我的所有文档都有 likes.data目的。

我试过这个:
POST /facebook/post/_update_by_query
{
"script": {
"inline": "if (ctx._source.likes != '') { ctx._source.like_count = ctx._source.likes.data.length }",
"lang": "painless"
}
}

但是收到此错误消息:
{
"type": "script_exception",
"reason": "runtime error",
"script_stack": [
"ctx._source.like_count = ctx._source.likes.data.length }",
" ^---- HERE"
],
"script": "if (ctx._source.likes != '') { ctx._source.like_count = ctx._source.likes.data.length }",
"lang": "painless"
}

最佳答案

试试 ctx._source['likes.data.name'].length
根据 https://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html , ES 中的对象数组被展平为

{
"likes.data.name" :["a", "b", "c"]
}

我们认为的对象数组数据类型是 Nest 数据类型。

关于elasticsearch - 用于计算数组长度的脚本化字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44528270/

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