Cypher根据适当性删除重复节点

时间:2014-10-09 22:24:30

标签: neo4j cypher

我正在尝试删除数百条记录上的重复节点,可以多次插入相同的消息。

我的第一次尝试是

START n=node(*), m=node(*)
WHERE HAS (n.msgid) AND HAS (m.msgid) AND n.msgid=m.msgid AND id(n)<id(m)
DELETE n

但这种情况非常缓慢,任何人都有更好的表现吗?

1 个答案:

答案 0 :(得分:3)

您正在创建所有节点的交叉产品。

试试这个:

CREATE INDEX ON :Label(msgid);

MATCH (n)
WHERE n.msgid
MATCH (m:Label {msgid:n.msgid})
WHERE id(n)<id(m)
DELETE n