gpt4 book ai didi

elasticsearch - 如何使用java在Elasticsearch中删除文档的字段属性?

转载 作者:行者123 更新时间:2023-12-02 23:28:56 24 4
gpt4 key购买 nike

我在Elasticsearch中有一个文档:

  {
"_index": "test",
"_type": "document",
"_id": "1",
"_score": 1,
"_source": {
"class": "aaa",
"id": 1,
"items": [{
"class": "aaa",
"id": 1
},{
"class": "ccc",
"id": 2
}],
"lastUpdated": "2016-07-22T11:26:56Z",
"processInstance": {
"class": "bbb"
},
"bianhao": "123"
}
}

如何使用Java删除 idclassitems
如何使用Java删除 {"class": "ccc","id": 2}

我知道如何使用以下方式删除字段:
client.prepareUpdate("test", "document", "1")
.setScript(new Script(
"ctx._source.remove(\"bianhao\")",
ScriptService.ScriptType.INLINE, null, null))
.get();
items的内容是json数组,我没有找到方法。

最佳答案

您可以这样实现:

Map<String, Object> params = new HashMap<>();
params.put("classParam", "ccc");
params.put("idParam", 2);

client.prepareUpdate("test", "document", "1")
.setScript(new Script(
"ctx._source.items.removeAll{ it['class'] == classParam && it.id == idParam }",
ScriptService.ScriptType.INLINE, null, params))
.get();

关于elasticsearch - 如何使用java在Elasticsearch中删除文档的字段属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38779707/

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