唯一计数,数组到字符串

时间:2017-11-17 16:27:31

标签: elasticsearch logstash

有我的意见 {"Names":"Name1, Name2","Country":"TheCountry"}

我一直在尝试做的是计算某个名称不仅出现在一个输入中而且还使用所有先前事件的时间。为此,我已经研究了Metrics,但我无法弄清楚我是如何做到这一点的。我遇到的第一个问题是Names是一个字符串而不是一个数组。

我没有看到我如何将Names转换为数组并将其赋予指标。还有其他解决方案吗?

1 个答案:

答案 0 :(得分:1)

首先,请检查logstash配置并将以下split过滤器添加到您的logstash.yml文件中。您的逗号分隔名称将在摄取数据时被拆分:

filter {
 split {
   field => "Names"
   terminator => ","
   target => "NamesArray"
 }
}

您可以更改地图。要为您的类型映射添加新字段,如下所示:

{
  "properties": {
    ...
    "NamesArray": {
      "type": "keyword"
    }
    ...
  }
}

您应该使用keyword类型NamesArray来获取有关空白字符的分隔字词的正确指标。