如何在 Elasticsearch 中查找和标记重复项

How to find and mark duplicates in Elasticsearch

我有两个 ES 索引,其中包含有关人员的数据(姓名、birth_date 等)。有些人同时出现在两个指数中,例如:

index1

_id first_name last_name birth_date ...
qqwew 演示 演示 1998.10.10
etroty 演示2 演示2 1995.11.11
werwr 演示3 演示3 1997.09.09

index2

_id first_name last_name birth_date ...
sdfll demo514 demo514 2001.11.04
fdgdg 演示2 演示2 1995.11.11
sdfdfg demo512 demo512 2000.05.16

如您所见,此条目包含在两个索引中(与 first_name、last_name 和 birth_date 相比):

_id first_name last_name birth_date ...
id不同 演示2 演示2 1995.11.11

我需要找到这样的条目并在其中添加一个具有唯一 ID 的附加字段,因此 index1 & index2 应该如下所示之后:

index1

_id first_name last_name birth_date unique_id
qqwew 演示 演示 1998.10.10
etroty 演示2 演示2 1995.11.11 QWERTY
werwr 演示3 演示3 1997.09.09

index2

_id first_name last_name birth_date unique_id
sdfll demo514 demo514 2001.11.04
fdgdg 演示2 演示2 1995.11.11 QWERTY
sdfdfg demo512 demo512 2000.05.16

我的数据来自 CSV 文件,这些文件被解析并导入到 ES(通过 Java)。我不确定我应该在哪个阶段做这样的事情,或者是否可以使用 ES

对于那些想知道我是如何解决这个问题的人 - 我没有。最好的解决方案是散列,但它并不完全适合我的需要。