【问题标题】:How to set document _id and _source with logstash and elasticsearch如何使用 logstash 和 elasticsearch 设置文档 _id 和 _source
【发布时间】:2018-09-28 00:15:00
【问题描述】:

我有一个文件,其中每一行都是一个 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 属性下的所有内容设置为文档。

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

【问题讨论】:

    标签: elasticsearch logstash


    【解决方案1】:

    你试过这个吗?

     document_id => "%{_id}"
    

    另外,如果不是真的总是更新,您可能想要使用 upsert 而不是 update。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-11
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 2012-12-26
      • 1970-01-01
      相关资源
      最近更新 更多