elasticsearch 是否可以通过logstash配置文件覆盖现有的elasticsearch索引,elasticsearch,indexing,logstash,overwrite,elasticsearch,Indexing,Logstash,Overwrite" /> elasticsearch 是否可以通过logstash配置文件覆盖现有的elasticsearch索引,elasticsearch,indexing,logstash,overwrite,elasticsearch,Indexing,Logstash,Overwrite" />

elasticsearch 是否可以通过logstash配置文件覆盖现有的elasticsearch索引

elasticsearch 是否可以通过logstash配置文件覆盖现有的elasticsearch索引,elasticsearch,indexing,logstash,overwrite,elasticsearch,Indexing,Logstash,Overwrite,我有下面的logstash配置文件,用于索引数据库(在本例中只是一个csv文件)。每次使用此配置调用logstash时,它都会添加到现有的elasticsearch索引中,从而生成重复项。我真的希望它覆盖现有的索引。我意识到我可能可以通过两个配置调用来实现这一点,一个是action=>“delete”,另一个是action=>“index”,但似乎我应该能够在一个步骤中完成这一点。此外,从报告中还不清楚我是否可以使用upsert进行此操作。(另外,请注意,我正在使用stdin选项,这意味着一旦文

我有下面的logstash配置文件,用于索引数据库(在本例中只是一个csv文件)。每次使用此配置调用logstash时,它都会添加到现有的elasticsearch索引中,从而生成重复项。我真的希望它覆盖现有的索引。我意识到我可能可以通过两个配置调用来实现这一点,一个是action=>“delete”,另一个是action=>“index”,但似乎我应该能够在一个步骤中完成这一点。此外,从报告中还不清楚我是否可以使用upsert进行此操作。(另外,请注意,我正在使用stdin选项,这意味着一旦文档被索引,logstash就会退出,它不会继续监视文档的更改)谢谢您的帮助

input {
     stdin {}
}
filter {
     csv { 
        columns => [a,b,c,d]
        separator=> ","
    }
}

output {
    elasticsearch {
        hosts => ["localhost:9200"] 
        index => "database.csv"
    }
}
如果您有(或可以计算)csv中的id,您可以执行以下操作:

output {
    elasticsearch {
        hosts => ["localhost:9200"] 
        index => "database.csv"
        document_id => "%{yourComputedId}"
    }
}
然后,每次尝试索引相同的id时,它都会在es索引中更新。

如果您有(或可以计算)csv中的id,您可以执行以下操作:

output {
    elasticsearch {
        hosts => ["localhost:9200"] 
        index => "database.csv"
        document_id => "%{yourComputedId}"
    }
}

然后每次你尝试索引相同的id时,它都会在es索引中更新。

好的,我在这里找到了一篇类似的文章好的,我在这里找到了一篇类似的文章