如何从Logstash索引到Elasticsearch中时对文档进行重复数据删除

我将Logstash

1.4.1和ES1.01一起使用,并希望根据计算出的校验和替换已经索引的文档。我目前在Logstash中使用“指纹”过滤器,该过滤器根据指定的算法创建“指纹”字段。现在-

我要完成的任务是ES 根据相同的指纹值替换现有的文档

例如,假设我有一个指纹字段值为“ 2c9a6802e10fbcff36177e0b88993f90868fa6fa”的文档。现在-

如果要对具有相同指纹值的文档建立索引,我希望它替换索引中已经存在的 文档。

我尝试将以下内容添加到“ elasticsearch-template.json”模板文件中,该文件假定由Logstash ES输出插件使用:

...

"mappings" : {

"_default_" : {

"_id" : {"index": "not_analyzed", "store" : false, "path" : "fingerprint" },

"_all" : {"enabled" : true},

"dynamic_templates" : [ {

...

但这不起作用。我在这里做错了什么?

干杯

回答:

我将在您的logstash elasticsearch输出部分中使用document_id参数:

Value type is string

Default value is nil

索引的文档ID。用于覆盖具有相同ID的Elasticsearch中的现有条目。

https://www.elastic.co/guide/zh-CN/logstash/current/plugins-outputs-

elasticsearch.html#plugins-outputs-elasticsearch-

document_id

我认为该条目应如下所示:

document_id => "%{fingerprint}"

它使用logstash的sprintf格式将字符串替换为字段的内容:

https://www.elastic.co/guide/zh-CN/logstash/current/event-dependent-

configuration.html#sprintf

以上是 如何从Logstash索引到Elasticsearch中时对文档进行重复数据删除 的全部内容, 来源链接: utcz.com/qa/420592.html

回到顶部