Elasticsearch - Как добавить или изменить массив строк в объекте JSON, используя Java?

Я хочу вставить что-то вроде этого:

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

1) Как я могу добиться этого с помощью Java-клиента (API высокого уровня)?

2) Как я могу добавить в поле «тип» (если оно существует)?

пример: я хочу добавить «U3» в поле «тип», чтобы он стал таким

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

Всего 1 ответ


Вы можете добавить значение в массив, используя скрипт.

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

Я не знаю, как использовать Java-клиент высокого уровня API, извините.


Есть идеи?

10000