Logsta sh опционально может установить параметры вывода для поиска в зависимости от полей - PullRequest
0 голосов
/ 10 января 2020

Предположим, у меня есть некоторые документы с полем соединения, поэтому в них может быть родительское поле (например, [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 {
      ...
    }
  }
}
...