如何在从logstash索引到elasticsearch时对文档进行重复数据删除

 地之南_816 发布于 2022-12-31 14:48

我正在使用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" : [ {
...

但它不起作用.我在这做错了什么?

干杯

1 个回答
  • 我会在你的logstash elasticsearch输出部分中使用document_id参数:

    DOCUMENT_ID

    Value type is string
    Default value is nil
    

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

    https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html#plugins-outputs-elasticsearch-document_id

    我相信参赛作品应该是这样的:

    document_id => "%{fingerprint}"
    

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

    https://www.elastic.co/guide/en/logstash/current/event-dependent-configuration.html#sprintf

    2022-12-31 14:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有