在Deep Elasticsearch文档中用空对象递归初始化字段

时间:2019-01-16 16:56:36

标签: elasticsearch elasticsearch-painless

我当前在一个映射中有一个深层嵌套的对象:

{
  "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 ]
}

有没有一种方法可以简化那些初始化步骤?

0 个答案:

没有答案