Logstash - 在对象字段包含的数组中查找
Logstash - find in array where object's field contains
我有一个数组,其中包含一个带有键和值的对象。我想检查 "key" 字段是否等于某个值。
这有效 -
if "MyTest" in [doc][customInput][tags][0][key]
mutate { add_field => {"[doc][test]" => "5555"}}
但我硬编码了 [0] 索引,相关条目可能不是数组中的第一个。
怎么写?
我最终为此目的使用了 ruby 过滤器(没有它找不到任何方法):
filter {
ruby {
code => "
myArray = event['doc']['customInput']['tags']
if myArray && myArray.detect{|t| t['key'] == "MyTest"}
event['doc']['test'] = tags_array.detect{|t| t['key'] == 'MyTest'}['value']
end
"
}
}
我有一个数组,其中包含一个带有键和值的对象。我想检查 "key" 字段是否等于某个值。
这有效 -
if "MyTest" in [doc][customInput][tags][0][key]
mutate { add_field => {"[doc][test]" => "5555"}}
但我硬编码了 [0] 索引,相关条目可能不是数组中的第一个。
怎么写?
我最终为此目的使用了 ruby 过滤器(没有它找不到任何方法):
filter {
ruby {
code => "
myArray = event['doc']['customInput']['tags']
if myArray && myArray.detect{|t| t['key'] == "MyTest"}
event['doc']['test'] = tags_array.detect{|t| t['key'] == 'MyTest'}['value']
end
"
}
}