1

私はlogstashを使用してcsvファイルからelasticsearchにデータをインポートしています。

インポート中に、他の 2 つのフィールドの値を持つ新しいフィールドを作成したいと考えています。これが私のインポートのスニペットです:

    input {
          file {
            path => "/data/xyz/*.csv"
            start_position => "beginning"
            ignore_older => 0
            sincedb_path => "/dev/null"
          }
    }

    filter {
        if [path] =~ "csv1" {
            csv {
                  separator => ";"
                  columns =>
                  [
                    "name1",
                    "name2",
                    "name3",
                    "ID"              
                  ]
              }
                mutate {
                  add_field => {
                      "searchfield" => "%{name1} %{name2} %{name3}"
                }
            }
        }

    output {
           if [path] =~ "csv1" {
               elasticsearch {
                  hosts => "localhost"
                  index => "my_index"           
                  document_id => "%{ID}"
               }
           }
    }
}

これは希望どおりに機能しますが、たとえば name3 が空の行では、logstash は%{name3}新しいフィールドに書き込みます。空でない場合にのみ値を追加する方法はありますか?

4

1 に答える 1