Предположим, у меня есть некоторые документы с полем соединения, поэтому в них может быть родительское поле (например, [join_field] [parent]), поэтому, согласно документам, мне нужно передать это _routing в logsta shasticsearch output,
...
output {
elasticsearch {
...
routing => "%{[join_field][parent]}"
}
}
Теперь, если в do c нет join_field, вышеприведенное установит его маршрутизацию буквально %{[join_field][parent]}
в ES.
В любом случае я могу сделать его необязательным, чтобы выход ES будет иметь установленную маршрутизацию, только если есть [join_field] [parent]?
Или единственный способ заключается в том, чтобы иметь условие if else для поля и иметь отдельный вывод для каждого (но кажется странным иметь несколько if для многих опций)? Также это может иметь проблемы с производительностью?
...
output {
if [join_field][parent] {
elasticsearch {
...
routing => "%{[join_field][parent]}"
}
} else {
elasticsearch {
...
}
}
}