我有带有标签A
的节点。其中一些与关系TEST
相关联(请参见图A)。
我要MATCH
个连接的节点组,为每个组创建一个新节点B
,并创建一个从该组的每个成员到新节点B
的关系(请参阅图B)。我知道这些小组很小,建立关系TEST
的步骤不超过3个。
如何MATCH
A
个节点并返回连接的组? APOC是否实现了图算法?
答案 0 :(得分:1)
我找到了答案,也许对某人还是有帮助的
图算法包()https://neo4j.com/docs/graph-algorithms/current/中有几种用于社区检测的算法。在这种情况下,我们会寻找已连接的组件:https://neo4j.com/docs/graph-algorithms/current/algorithms/connected-components/
该算法可以找到连接的组件,并在节点上存储该组件的ID:
CALL algo.unionFind('A', 'TEST', {write:true, partitionProperty:"partition"})
YIELD nodes, setCount, loadMillis, computeMillis, writeMillis;
有了这个新属性,MATCH
就能轻松属于一个特定组的所有节点:
MATCH (a:A)
WITH a.partition AS p, a
RETURN p, count(a)