Elasticsearch管道将对象的字段提取到文档的根目录

时间:2017-05-17 11:36:53

标签: elasticsearch elasticsearch-painless

我正在寻找一种方法来提取对象的内容,例如

{
    "mdc":{
      "key1": "value1",
      "key2": "value2",
      ...
    }
}

并将其转换为

{
       "key1": "value1",
       "key2": "value2",
       ...
        "mdc":{
          "key1": "value1",
          "key2": "value2"
        }
}

我正在查看提供的处理器,但找不到任何有用的东西。

我最初的想法是:

  • 指定一个字段,其内容我可以正则表达式匹配或以其他方式选择
  • 迭代他们
  • 将其内容内联到新字段。

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:0)

毕竟不是那么难。

   {
      "mdcflatten": {
        "processors": [
          {
            "script": {
              "lang": "painless",
              "inline": " ctx.mdc.keySet().each (key -> ctx[key] = ctx.mdc.get(key))"
            }
          },
          {
            "remove": {
              "field": "mdc"
            }
          }
        ]
      }

希望这有帮助。