试图从Solr中删除重复记录

时间:2017-03-01 14:55:37

标签: solr duplicates sharding solr5

我正在使用 Solr 5.2.0 ,每个核心有2个分片,每个分片有2个节点。每个分片在clusterstate.json中配置为具有范围,以在分片之间划分记录,如下所示:

"shard1": {"range": "0-7fffffff"}, "shard2": {"range": "80000000-ffffffff"}

由于节点级别的分片分配问题,某些数据已从shard1节点复制到shard2节点。目前,每个核心都有一些重复记录,即从shard1复制到shard2节点的数据。当更新发送到solr时,记录(如果它属于shard1)在shard1节点上正确更新,但是shard2节点中仍然存在一些shard1记录的[旧]副本,因此solr将会出现(取决于延迟)如果shard2节点响应请求,则返回旧版本的记录。

我正在尝试查看是否有某种方法可以找到shard2节点中不应存在的这些重复记录并将其删除。

我试图进行一些方面搜索,但是没有任何积极的结果来找到重复的方式。但是,这些努力的主要内容是不仅能够找到重复项,而且能够找到不应该在该分片上的重复项(基于范围定义),并且只删除这些记录。

或者,查询节点上的记录是否应该实际位于该节点上(同样,基于范围),我只能通过查询删除。

1 个答案:

答案 0 :(得分:0)

使用参数distrib = false查询每个分片。这会将结果限制为该分片上的数据。 我会将每个分片中的ID转储到文件中并查找重复项。