我正在使用 logstash 将数据从 csv 文件导入到我们的弹性搜索中。
在导入期间,我想创建一个包含其他两个字段值的新字段。这是我的导入片段:
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}
新字段。有没有办法只添加不为空的值?