如何从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