当前位置: 首页 > 面试题库 >

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

薛弘厚
2023-03-14
问题内容

我将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参数:

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



 类似资料:
  • 我有一个数据框 我只想保留唯一的索引,因为索引1是重复的,我想删除它的第二个实例,我该怎么做?我想要我的结果

  • 问题内容: 我有一个包含多个重复条目的索引。它们具有不同的ID,但其他字段具有相同的内容。 例如: 删除重复项后: 有没有一种方法可以删除所有重复项并仅保留一个不同的条目,而无需手动比较所有条目? 问题答案: 我使用rails,如有必要,我将使用命令导入内容,该命令将删除并重新索引该索引和类型的所有内容……但是不确定您在哪个环境中运行ES。我只能看到的问题是数据源是否您正在从中导入(即数据库)的记

  • 问题内容: 我有一个索引,其中很多纸在同一字段中具有相同的值。在这一领域,我有一个重复数据删除技术。 聚合器将作为计数器来找我。我想要一份文件清单。 我的索引: Doc 1 {domain:’domain1.fr’,name:’name1’,date:‘01 -01-2014’} Doc 2 {domain:’domain1.fr’,name:’name1’,date:‘01 -02-2014’}

  • 问题内容: 我用映射创建了一个新索引。其中存储了500 000个文档。 我想更改索引的映射,但是在elasticsearch中是不可能的。所以我用新的新映射创建了另一个索引,现在我正尝试将文档从旧索引复制到新索引。 我正在使用扫描和滚动类型从旧索引中检索文档并将其复制到新索引。复制需要花费更多时间,并且系统运行缓慢。 下面是我正在使用的代码。 问题答案: 您不必编写类似的代码。周围有一些出色的工具

  • 我整晚都在做这个,快把我逼疯了。它应该很简单,但它不起作用。这适用于Oracle,但不适用于MySQL,我创建了类似的数据库。使用-f选项提供给logstash的配置。 } 输出{stdout{codec= } 一旦我运行了logstash,它就不会将数据加载到弹性搜索索引中。当我执行以下操作时,我甚至看不到名为visitDb的索引。 curl'localhost:9200/_cat/索引?v'

  • 问题内容: 我正在使用Elasticsearch 2.3.3并试图为现有索引创建一个精确的副本。(使用与Elasticsearch安装捆绑在一起的reindex插件) 问题是复制了数据,但是忽略了诸如映射和分析器之类的设置。 精确复制现有索引(包括所有设置)的最佳方法是什么? 我的主要目标是创建副本,更改副本,并且只有在一切顺利的情况下,才将别名替换为副本。(零宕机时间备份和还原) 问题答案: 以