如果为空,删除数组字段

时间:2018-03-01 10:19:33

标签: elasticsearch logstash

如果空的话,请建议如何删除数组字段?我试过下面的配置:

if [tags] == [] {
mutate {
remove_field => ["tags"]
}
}

But getting logstash exception:
[2018-03-01T15:07:56,000][FATAL][logstash.runner ] The given configuration is invalid. Reason: Failed to parse right-hand side of conditional [str]pipeline:31:8:[tags] == []

3 个答案:

答案 0 :(得分:3)

我不知道如何从ruby过滤器内部删除字段,所以当tags数组为空时,我正在设置另一个字段并使用知道何时删除字段{{1} }。

tags

答案 1 :(得分:0)

这个对我有用:

ruby {
  code => "if event.get('tags').length == 0 then event.remove('tags') end"
}

答案 2 :(得分:0)

检查是否为非null以及数组中是否至少有一个元素

if [tags] and [tags][0] {
    mutate {
        remove_field => ["tags"]
    }
}

在Logstash 7.1上测试