假设我有一些带有 join 字段的文档,所以它们可能有 parent(eg [join_field][parent]) 字段,因此根据文档,我需要将其传递给 logstash elasticsearch 输出中的 _routing,
...
output {
elasticsearch {
...
routing => "%{[join_field][parent]}"
}
}
现在,如果文档中没有 join_field,上面将%{[join_field][parent]}
在 ES 中将其路由设置为字面意思。
无论如何我可以将其设为可选,因此只有在 [join_field][parent] 存在时,ES 输出才会设置路由?
或者这里唯一的方法是在字段上设置 if else 条件并为每个设置单独的输出(但是对于许多选项有多个 if 感觉很奇怪)?这也可能有任何性能问题吗?
...
output {
if [join_field][parent] {
elasticsearch {
...
routing => "%{[join_field][parent]}"
}
} else {
elasticsearch {
...
}
}
}