为什么要使用无痛脚本将数组添加到数组?

Why is an array adding to an array with painless script?

使用 Logstash,我的目标是在该文档的时间戳之前未被索引时对该文档进行索引,否则,如果该文档确实存在并且时间戳不在数组中,则附加时间戳数组。我的问题是数组附加到数组。

即我的输入日志行始终相同,除了我想附加到 Elastic 中同一文档的时间戳。

这是我的输入数据。

这是我的 Logstash 配置:

这是输出。

我想要的输出是:

 "timestamp": [
      "1534011111",
      "1534022222"
      "1534023333"
    ],

如何获得所需的输出?我是 运行 Elasticsearch 6.4.2 和 Logstash 6.4.2。

问题是 split => { "timestamp" => "," }timestamp 字段转换为数组,而 add 方法接受一个对象并将其附加到原始数组(它不会连接两个数组)。

轻松尝试访问 timestamp 数组的第一个元素,就像这样: if(ctx._source.timestamp.contains(params.event.get("timestamp")[0])) return true; else (ctx._source.timestamp.add(params.event.get("timestamp")[0]))