这也许一个愚蠢的问题,但我现在用的是每天滚动索引保存我的logstash事件时,配置也很简单:Elasticsearch每天滚动索引包含重复的_id
input: {..source..}
filter: {..filter..}
output: {
elasticsearch: {
document_id: %{my_own_guarantee_unique_id}
index: myindex-%{+YYYY.MM.DD}
}
}
什么我发现了,如果有具有相同my_own_guarantee_unique_id
的事件会在不同的日期出现,它会在这些日常滚动指数中创建多次,即。您可以在myindex-2015.06.21和myindex-2015.06.22中找到出现_id = 123的事件
是这种重复出箱?我该怎么做才能避免它?任何建议或阅读将不胜感激,谢谢!
这很有道理Jettro。由于我使用的是logstash,在保存文档时是否有一种方法可以使用'_uid'而不是'_id'? –
如果您想要做的是更新文档,如果具有相同ID的文档长度超过您可以通过更改日志存储配置中索引的模板将它们插入到一个大型索引中。问题是索引之间没有关系。无法控制不同索引的唯一性。 –
同意Jettra,我最终做出了一个自定义logstash过滤器,通过通配符(logstash- *)发送查询到相关索引以查找具有该“_id”的记录,并且如果有现有记录并且不属于当天的索引,它将删除它们,并将当前事件插入当前索引 - 有点笨拙,但有效 –