我想使用logstash输入elasticsearch结果创建一个新数组。
例如,在以下查询中搜索结果。
input {
elasitcsearch{
index => "test"
query => "{'query':{'match':{'field1':'testtt'}},'_source':'field2'}"
}
}
结果如下所示。
{
'field2':1
}
{
'field2':2
}
{
'field2':3
}
现在我想将上述对象变成一个新数组。
像这样...... field2 = [1,2,3]
这可能吗?
答案 0 :(得分:1)
尝试使用带有聚合插件的Logstash过滤器,例如:
filter {
aggregate {
task_id => "agregate_field2"
code => "
map['field2'] ||= []
map['field2'] << event.get('field2')
event.cancel()
"
push_previous_map_as_event => true
timeout => 3
}
}