所以我只想到以下内容:
MATCH(a:Entity)<-(x:Entity)SET a.links_to = count(x) 匹配(a:Entity)->(x:Entity)SET a.links_from = count(x)
我该如何在Cypher中正确编写呢? 我怎么可能通过使用Apoc快速且最好是并行的方式进行此操作?
答案 0 :(得分:0)
这是一项昂贵的操作,但是如果您要执行此操作,请使用以下密码查询:
match (a)-[]->(b)
with a, b,
CASE WHEN exists(a.outgoingEdges) THEN a.outgoingEdges+1 else 1 END as outgoingEdges,
CASE WHEN exists(b.incomingEdges) THEN b.incomingEdges+1 else 1 END as incomingEdges
SET
a.outgoingEdges= outgoingEdges,
b.incomingEdges = incomingEdges
答案 1 :(得分:0)
这可以非常有效地完成。
Match (e:Entity)
Set e.links_to = size((e)<--()),
e.links_from = size((e)-->())
如果您想使用APOC加速并并行运行
Call apoc.periodic.iterate(
' match (e:Entity) return e',
' set e.links_to = size((e)<--()),
e.links_from = size((e)-->())',
{batchSize:10000,parallel: true})
答案 2 :(得分:0)
好评。 Apoc解决方案效果特别好。非常感谢!