首页 > 解决方案 > Elasticsearch - 如何使用 Java 在 JSON 对象中添加或编辑字符串数组?

问题描述

我在 Java 中分别有用户 ID、名称和类型变量作为 int、string 和 arraylist。我想像这样将它插入到弹性搜索数据库中:-

users
{
    "userid": 5,
    "name": "test",
    "type": ["U1", "U2"]
}

1)如何使用Java客户端(高级API)实现这一点?

2)如何附加到“类型”字段(假设它存在)?

示例:我想将“U3”添加到“类型”字段中,这样它就变成了这样

users
{
    "userid": 5,
    "name": "test",
    "type": ["U1", "U2", "U3"]
}

标签: javajsonelasticsearch

解决方案


您可以使用脚本向数组添加值。

POST /users/_update/5
{
    "script" : {
        "source": "ctx._source.type.add(params.type)",
        "lang": "painless",
        "params" : {
            "type" : "U3"
        }
    }
}

从那里获取:https ://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html

我不知道如何使用高级 API java 客户端,对不起。


推荐阅读