【问题标题】:I want to create a new array using logstash input elasticsearch results我想使用logstash输入elasticsearch结果创建一个新数组
【发布时间】:2018-02-13 08:11:28
【问题描述】:

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

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

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

结果如下图。

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

现在我想把上面的对象变成一个新的数组。

像这样……

field2 = [1,2,3]

这可能吗?

【问题讨论】:

    标签: arrays ruby elasticsearch logstash


    【解决方案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
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-30
      • 2023-03-23
      • 2021-05-04
      • 2015-10-29
      • 2016-02-21
      • 2015-12-06
      • 1970-01-01
      相关资源
      最近更新 更多