我想使用logstash输入elasticsearch结果创建一个新数组

时间:2017-09-05 06:10:11

标签: arrays ruby elasticsearch logstash

我想使用logstash输入elasticsearch结果创建一个新数组。

例如,在以下查询中搜索结果。

input {
 elasitcsearch{
  index => "test"
  query => "{'query':{'match':{'field1':'testtt'}},'_source':'field2'}"
 }
}

结果如下所示。

{
 'field2':1
}
{
 'field2':2
}
{
 'field2':3
}

现在我想将上述对象变成一个新数组。

像这样......

field2 = [1,2,3]

这可能吗?

1 个答案:

答案 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
  }
}