【问题标题】:Can we extract numeric values from string through script in kibana?我们可以通过kibana中的脚本从字符串中提取数值吗?
【发布时间】:2016-06-21 21:46:37
【问题描述】:

我需要从字符串中提取数值并存储在新字段中。我们可以通过脚本字段来做到这一点吗?

例如:1 hello 3 测试

我需要提取 1 和 3。

【问题讨论】:

    标签: elasticsearch lucene kibana kibana-4


    【解决方案1】:

    如果您使用的是 elasticsearch,您可以通过 logstash 执行此操作。

    使用类似的配置运行 logstash 进程

    input {
      elasticsearch {
        hosts => "your_host"
        index => "your_index"
        query => "{ "query": { "match_all": {} } }"
      }
    }
    filter {
      grok {
        match => { "your_string_field" => "%{NUMBER:num1} %{GREEDYDATA:middle_stuff} %{NUMBER:num2} %{GREEDYDATA:other_stuff}" }
      }
      mutate {
        remove_field => ["middle_stuff", "other_stuff"]
      }
    }
    output{
      elasticsearch {
        host => "yourhost"
        index => "your index"
        document_id => %{id}
      }
    }  
    

    这实际上会用另外两个字段 num1 和 num2 覆盖索引中的每个文档,它们对应于您要查找的数字。这只是一种快速而肮脏的方法,会占用更多内存,但可以让您一次完成所有分解,而不是在可视化时间。

    我确信有一种方法可以通过脚本来做到这一点,看看你返回特定组的 groovy 正则表达式匹配。

    也不能保证我的配置表示是正确的,因为我现在没有时间测试它。

    祝你有美好的一天!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-15
      • 2022-07-07
      • 1970-01-01
      • 2012-06-28
      • 1970-01-01
      • 2021-11-19
      相关资源
      最近更新 更多