gpt4 book ai didi

Elasticsearch - 如果不存在则使用脚本创建字段

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

有没有办法使用脚本动态添加字段?我正在运行一个脚本来检查字段是否存在。如果没有,则创建它。

我正在尝试:

script: 'if (ctx._source.attending == null) { ctx._source.attending = { events: newField } } else if (ctx._source.attending.events == null) { ctx._source.attending.events = newField } else { ctx._source.attending.events += newField }'

除非我的 _source 中有一个字段明确命名为 attending 在我的例子中,否则我得到:

[Error: ElasticsearchIllegalArgumentException[failed to execute script];
nested: PropertyAccessException[
[Error: could not access: attending; in class: java.util.LinkedHashMap]

最佳答案

要检查字段是否存在,请使用 ctx._source.containsKey 函数,例如:

curl -XPOST "http://localhost:9200/myindex/message/1/_update" -d'
{
"script": "if (!ctx._source.containsKey(\"attending\")) { ctx._source.attending = newField }",
"params" : {"newField" : "blue" },
"myfield": "data"
}'

关于Elasticsearch - 如果不存在则使用脚本创建字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26975553/

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