gpt4 book ai didi

json - 将Elastic Search字段转换为数组

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

在 flex 搜索中,如果您的文档具有预先存在的数组

"movies": [
"Back to the Future"
]

然后您对其进行更新以添加更多类似的电影
{
"script" : "ctx._source.movies += tag",
"params" : {
"tag" : "Pulp Fiction"
}
}

然后将值添加到该字段。效果很好...但是,如果该 Realm 并非一开始就很麻烦,而是看起来像这样,该怎么办
"movies": "Back to the Future"
如果运行相同的脚本,将得到以下结果
"movies":"Back to the FuturePulpFiction"
因此,我的问题是如何利用这个现有字段并将其“转换”为数组,以告诉 flex 搜索我想将其视为数组?

最佳答案

您可以改用此脚本。它检查movies是否为数组,如果不是,则创建一个

{
"script" : "if (ctx._source.movies.getClass().isArray()) { ctx._source.movies += tag } else { ctx._source.movies = [ctx._source.movies, tag] }",
"params" : {
"tag" : "Pulp Fiction"
}
}

另一个更短的方法是始终分配一个数组,然后使用Groovy的 Collection.flatten() 方法“展平”它
{
"script" : "ctx._source.movies = [ctx._source.movies, tag].flatten()",
"params" : {
"tag" : "Pulp Fiction"
}
}

关于json - 将Elastic Search字段转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33303836/

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