将文件添加到elasticsearch(如果不存在)

时间:2019-08-27 13:52:26

标签: elasticsearch logstash logstash-file

我使用logstash将每天生成的日志中的一些数据传输到elasticsearch,我的logstash输出部分如下所示:

enter image description here

我在我的日志文件和elasticsearch中都保留了相同的ID(id_ot),但是我想做的是:如果Elasticseach中已经存在新的ID(id_ot),那么我将不插入它。如何在Logstash中做到这一点?

任何帮助都会得到真正的帮助!

2 个答案:

答案 0 :(得分:1)

您只需要添加action => create parameter,如果已经存在具有该ID的文档,则该文档不会被索引

output {
  elasticsearch {
    ...
    action => "create"
  }
}

答案 1 :(得分:0)

您要提供的是upsert,如果剂量存在,则创建文档或更新现有的文档。 弹性通过doc_as_upsert选项支持这一点

https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html#doc_as_upsert

在链接的右侧,您可以选择与您的版本匹配的弹性版本。