【问题标题】:Is it possible to overwrite exisiting elasticsearch index through logstash config file是否可以通过 logstash 配置文件覆盖现有的弹性搜索索引
【发布时间】:2016-03-19 06:14:09
【问题描述】:

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

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

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

【问题讨论】:

标签: elasticsearch indexing logstash overwrite


【解决方案1】:

如果你有(或可以计算)你的 csv 中的 id,你可以这样做:

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

那么每次你尝试索引同一个id时,它都会在es索引中更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多