Вставить объект во вложенный массив - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь вставить объект во вложенный массив через API Java, но я получаю следующую ошибку

MapperParsingException [сопоставление объекта для [X] попыталось проанализировать поле [null]как объект, но нашел конкретное значение]

выполнение этого через Kibana, как показано ниже, работает тот же сценарий.

Есть идеи, как это исправить?

Java-код следующий

HashMap<String, Object> params = new HashMap<>();
params.put("object", objectAsString);
Script script = new Script(ScriptType.INLINE, "painless", "ctx._source.media.add(params.object)", params);
UpdateResponse result = elasticClient.prepareUpdate(indexName, "Type", documentId).setScript(script).execute().actionGet();

Trhough Kibana

POST index/document/id/_update
{
   "script": {
      "lang": "painless",
      "inline": "ctx._source.media.add(params.object)",
      "params": {
         "object": {
           "description" : "A second image",
      "height" :  5,
      "weight": 5,
      "name" :  "Test",
      "orientation" :  "Vertical",
       "url" :  "htttp://newurl.jpg",
      "tags":["first","second"],
      "type":"image"
         }
      }
   }
}

Отображение шаблона следующее:

"mappings": {
        "FOLDER_MODULE": {
            "properties": {
                "name": {
                    "type": "keyword"
                },
                "publisherId": {
                    "type": "keyword"
                },
                "username": {
                    "type": "keyword"
                },
                "media": {
                    "type": "nested",
                    "properties": {
                        "id": {
                            "type": "text"
                        },
                        "name": {
                            "type": "text"
                        },
                        "publisherId": {
                            "type": "short"
                        },
                        "tags": {
                            "type": "text"
                        },
                        "description": {
                            "type": "text"
                        },
                        "url": {
                            "type": "keyword"
                        },
                        "createdDate": {
                            "format": "strict_date_optional_time||epoch_millis",
                            "type": "date"
                        },
                        "height": {
                            "type": "float"
                        },
                        "width": {
                            "type": "float"
                        },
                        "weight": {
                            "type": "float"
                        },
                        "orientation": {
                            "type": "keyword"
                        },
                        "status": {
                            "type": "keyword"
                        },
                        "type": {
                            "type": "keyword"
                        },
                        "username": {
                            "type": "keyword"
                        }
                    }
                }
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...