gpt4 book ai didi

elasticsearch - 如果它不是现有元素,则追加到 Elasticsearch 字段列表/数组

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

假设我们有:

curl -XPOST "http://localhost:9200/t/t/1" -d'
{
"hobbies" : ["a", "b"]
}'

我知道我可以这样做来增加爱好:

curl -XPOST "http://localhost:9200/t/t/1/_update" -d'
{
"script" : "ctx._source.hobbies += hobby",
"params" : {
"hobby" : "c"
}
}'

但是如果 hobby 不是 'c' 而是 'b',我该怎么做,我不会以 ["a", "b", "b"] 作为 hobby 结尾?因此,如果“c”不是一种爱好,它只会附加“c”吗?

最佳答案

您可以通过稍微修改 OP 中的脚本来实现相同的目的

示例:

curl -XPOST "http://localhost:9200/t/t/1/_update -d'
{
"script" : " if(! ctx._source.hobbies.contains(hobby)){ ctx._source.hobbies += hobby }",
"params" : {
"hobby" : "c"
}
}'

上面的例子假设字段 hobbies 存在并且是一个 List 否则你需要合并更多的逻辑来处理这些。

关于elasticsearch - 如果它不是现有元素,则追加到 Elasticsearch 字段列表/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31142729/

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