2016-06-21 15 views
0

私は文字列から数値を抽出し、新しいフィールドに格納する必要があります。スクリプトフィールドでこれを行うことはできますか?文字列から数値を抽出することはできますか?

例:1ハロー3テスト

は、私はあなたがelasticsearchを使用している場合はlogstashを介してこれを行うことができます1および3

答えて

0

を抽出する必要があります。

は、基本的にあなたが探している番号に対応する2つの以上のフィールド、NUM1とNUM2を使用して、インデックス内の各文書を上書きする

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

このように設定してlogstashプロセスを実行します。これは、より多くのメモリを占有する迅速かつ汚れたアプローチですが、視覚化時間ではなく、一度にすべての分割を行うことができます。

私はスクリプトでこれを行う方法があると確信しています。あなたが特定のグループを返す場所をgroovy regexと照合してみてください。

また、現時点でテストする時間がないため、私の設定の表現が正しいことを保証しません。

良い一日を!

関連する問題