我目前有一个包含大约250,000条记录的SQL数据库(具有唯一ID),每次向数据库中添加一条记录时,它也会被记录在ES中(具有ID)。数据库中的每个记录都有一个deleted字段,用于软删除(这不会记录在ES中)。由于记录可以软删除,因此ES中的文档数将始终等于或大于数据库中未软删除的记录数。
我还编写了代码来删除ES中的所有文档,并用未删除的记录填充它,以便# ES documents == #未删除的文档。
假设我想检查所有未删除的记录是否都在ES中(它们应该在ES中,但假设在将一条记录添加到数据库中后,由于某种原因,它无法在ES中对其进行索引,而我们不知道),那么最好的方法是什么?
最初我在考虑对数据库中未删除的每条记录进行搜索,但那是大约250,000个GET请求,有没有更好的方法来比较差异?
发布于 2019-10-20 17:43:49
我的建议如下:
deleted字段添加到ES文档中,并且每次您在SQL中(软)删除文档时,还会更新ES.deleted字段,以便获得所有未删除的记录的数量,您只需使用deleted:false计算文档数量-使用一个简单的查询。https://stackoverflow.com/questions/58469455
复制相似问题