Elasticsearch在别名中维护唯一的_id

问题描述 投票:0回答:1

我们有ES数据,其中有多个索引属于同一别名。其中之一是书面索引。

我们如何保持文档的_id在属于相同别名的索引之间是唯一的?

我们现在在别名上有一个重复的_id。每个索引具有1个相同ID的记录。我们只希望在数据上保留该_id的最新记录,新的将覆盖旧的。

elasticsearch alias
1个回答
0
投票

如果我正确理解了这个问题,则可以通过使用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
                }
© www.soinside.com 2019 - 2024. All rights reserved.