3

是否可以使用 scripted_upsert 访问 elasticsearch logstash 输出脚本中的事件字段?

output {
    elasticsearch {
        hosts => ["elasticsearch:9200"]
        index => "index"
        document_type => "doctype"
        action => "update"
        document_id => "%{some_field}"
        scripted_upsert => true
        script => 'ctx._source.name = event["some_field"];'
        script_var_name => "event"
        script_type => "inline"
    }
}

如果我使用这样的脚本,它不会更新文档。但是,如果我设置ctx._source.name为静态的。例如。

script => 'ctx._source.name = "something"'

它按预期工作。和 upserts 文件。

4

1 回答 1

1

你可以试试这个:

ctx._source.name = params.event.get("some_field")
于 2018-06-20T16:25:18.613 回答