我有一个文件,其中每一行都是一个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
属性下的所有内容都设置为文档。
我缺少什么配置可以使我做到这一点?
答案 0 :(得分:1)
您尝试过这个吗?
document_id => "%{_id}"
此外,如果并非总是更新,则可能要使用upsert而不是update。