如何使用logstash和elasticsearch设置文档_id和_source

时间:2018-09-27 15:46:55

标签: elasticsearch logstash

我有一个文件,其中每一行都是一个JSON字符串,如下所示:

{"_id":171962,"doc":{"account_id":53,"email":"user@gmail.com"}}

以及以下logstash配置:

input {
  s3 {
    codec => json_lines
  }
}

output {
  elasticsearch {
    doc_as_upsert => true
    action => "update"
    document_id => "%{[_id]}"
  }
  stdout { 
    codec => json_lines 
  }
}

但是,出现以下错误:

Field [_id] is a metadata field and cannot be added inside a document. Use the index API request parameters.

我真正想要的是从_id设置文档ID,然后将JSON中doc属性下的所有内容都设置为文档。

我缺少什么配置可以使我做到这一点?

1 个答案:

答案 0 :(得分:1)

您尝试过这个吗?

 document_id => "%{_id}"

此外,如果并非总是更新,则可能要使用upsert而不是update。