gpt4 book ai didi

java - 如果值不存在则更新的 ElasticSearch 脚本

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

我正在尝试使用 Java 更新 es 文档。我的文档如下

"_source": {

"gender": "male" ,
"names": ["name1"]

}

我需要将更多名称添加到名称列表中。但我不想要重复的。如何更新 ES 文档中的数组而不产生重复值?

我尝试过这样的事情。但它不起作用。

client.prepareUpdate(index,type,id)
.addScriptParam("newobject", "newName")
.setScript("ctx._source.names.contains(newobject) ? ctx.op = \"none\" : ctx._source.names+=newobject ").execute().actionGet();

最佳答案

这个想法是简单地调用 unique()在结果列表中:

client.prepareUpdate(index,type,id)
.addScriptParam("newobject", "newName")
.setScript("ctx._source.names+=newobject; ctx._source.names = ctx._source.names.unique(); ").execute().actionGet();

此外,为了使其正常工作,您需要确保 scripting is enabled .

关于java - 如果值不存在则更新的 ElasticSearch 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33339808/

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