Arrays Logstash将对象数组转换为术语数组

Arrays Logstash将对象数组转换为术语数组,arrays,logstash,Arrays,Logstash,编辑->我为此创建了一个插件,可在以下位置获得: 您可以使用bin/logstash插件安装logstash filter collect 我有一个日志存储条目,如: "cvals" => [ [0] { "text" => "cval something 1", "indices" => [ [0] 17,

编辑->我为此创建了一个插件,可在以下位置获得:

您可以使用
bin/logstash插件安装logstash filter collect
我有一个日志存储条目,如:

 "cvals" => [
            [0] {
                   "text" => "cval something 1",
                "indices" => [
                    [0] 17,
                    [1] 29
                ]
            },
            [1] {
                   "text" => "cval something else 2",
                "indices" => [
                    [0] 17,
                    [1] 29
                ]
            }
            ...
            [n] {
                "text" => "cval more stuff n",
                "indices" => [
                    [0] 17,
                    [1] 29
                ]
            }

        ]
我想将其变异为:

"cvals_terms" => [ "cval something 1", "cval something else 2", ..., "cval more stuff n"]

我该如何处理Logstash?我可以用一块Ruby代码来完成,但必须有一种方法可以用mutate或我认为的东西来完成…

使用logstash oss v6.3.0,以下应该可以:

filter {
  ruby {
    code => "event.set('cvals_terms', event.get('cvals').map{ |n| n['text'] })"
  }
}

缺点是您使用字符串进行编码,这从长远来看会影响可维护性。

使用logstash oss v6.3.0,以下功能应该可以正常工作:

filter {
  ruby {
    code => "event.set('cvals_terms', event.get('cvals').map{ |n| n['text'] })"
  }
}

缺点是您使用字符串进行编码,这将损害长期的可维护性。

请参阅我的原始帖子中的插件,现在不需要自定义代码。这一行代码是为寻求轻量级解决方案的人提供的另一种方法。不过插件做得很好!要将Ruby代码移出Logstash管道,请参见:参见我的原始帖子中的插件,现在不需要定制代码。这一行代码是为寻求轻量级解决方案的人提供的一种替代方法。不过插件做得很好!有关将Ruby代码移出Logstash管道的信息,请参见: