我们有ES数据,其中有多个索引属于同一别名。其中之一是书面索引。
我们如何保持文档的_id在属于相同别名的索引之间是唯一的?
我们现在在别名上有一个重复的_id。每个索引具有1个相同ID的记录。我们只希望在数据上保留该_id的最新记录,新的将覆盖旧的。
如果我正确理解了这个问题,则可以通过使用logstash [假定使用_id]作为指纹值来获得数据的唯一性。
您的logstash过滤器中可以包含以下内容:
fingerprint{
source => ["session_id"]
method => "SHA1"
}
然后,可以使用指纹字段中的该值将数据放入索引中,并在现有文档的顶部进行更新。
下面是logstash中输出部分的示例:
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "indexname"
action => "update"
document_id => "%{fingerprint}"
doc_as_upsert => true
}