У меня есть вход logstash, где я использую document_id
для удаления дубликатов. Однако в большинстве входных данных нет document_id
. Следующее отбрасывает фактическое document_id
, но если оно не существует, оно принимается как буквально %{document_id}
, что означает, что большинство документов рассматриваются как дубликаты друг друга. Вот как выглядит мой выходной блок:logstash output to elasticsearch with document_id; что делать, если у меня нет документа_ид?
Я думал, что смогу использовать условное выражение на выходе. Он не работает, и ошибка указана ниже кода.
output {
elasticsearch_http {
host => "127.0.0.1"
if document_id {
document_id => "%{document_id}"
}
}
}
Error: Expected one of #, => at line 101, column 8 (byte 3103) after output {
elasticsearch_http {
host => "127.0.0.1"
if
Я попробовал несколько «если» заявления и все они терпят неудачу, поэтому я предполагаю, что проблема оказывает условную любого рода в этом блоке. Вот варианты я пытался:
if document_id <> "" {
if [document_id] <> "" {
if [document_id] {
if "hello" <> "" {
совершенным. Как я сказал Валу, я предпочитаю это, если uuid случайно опустится. – tedder42