Рекурсивно инициализировать поле с пустым объектом в глубоких документах Elasticsearch - PullRequest
0 голосов
/ 16 января 2019

В настоящее время у меня есть глубоко вложенный объект в одном из моих отображений:

{
  "doc": {
    "properties": {
      "biography": {
        "properties": {
          "en": {
            "properties": {
              "event": {
                "type": "nested",
                "properties": {
                  "id": {
                    "type": "long"
                  },
...

И в индексированных документах вообще не будет всей этой структуры инициализированной, когда позже я захочу добавить новую event. Итак, на данный момент у меня есть обновление по сценарию, например:

if (ctx._source.biography == null)
  ctx._source.biography = new HashMap();
if (ctx._source.biography.${language} == null)
  ctx._source.biography.${language} = new HashMap();
if (ctx._source.biography.${language}.event == null) {
  ctx._source.biography.${language}.event = [ params.event ]
} else {
  ctx._source.biography.${language}.event += [ params.event ]
}

Есть ли способ упростить эти шаги инициализации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...