0
我试图删除数百条记录上的重复节点,可以多次插入相同的消息。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
但这是极其缓慢的,任何人有更好的表演方法吗?
我试图删除数百条记录上的重复节点,可以多次插入相同的消息。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
但这是极其缓慢的,任何人有更好的表演方法吗?
您正在创建所有节点的交叉产品。
试试这个:
CREATE INDEX ON :Label(msgid);
MATCH (n)
WHERE n.msgid
MATCH (m:Label {msgid:n.msgid})
WHERE id(n)<id(m)
DELETE n
我试图用出场比赛,但我是用的匹配,并得到错误,会尝试你的方法! – Astronaut 2014-10-10 08:47:09