Elasticsearch每日滚动索引包含重复的_id

时间:2015-06-21 23:54:17

标签: elasticsearch logstash

这可能是一个愚蠢的问题但是我使用每日滚动索引来使用logstash保存我的事件,配置很简单:

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的事件

是开箱即用的这种副本吗?我应该怎么做才能避免它?任何建议或阅读将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:1)

由于您使用多个索引(每天一个索引),因此您可以获得相同的_id。使文档唯一的原因是uid,它是索引,类型和id的组合。根据我的知识,没有办法灵活地改变这一点。

答案 1 :(得分:0)

我有完全相同的问题:几个具有相同ID但在不同索引中的重复文档(我有1个索引/日期)。

对我有用的是生成一个带有索引名称的字段,并在logstash配置的输出部分重用它。

index => "%{index_name}"
document_id => "%{clickID}"