2017-03-09 49 views
0

我相当肯定我已经在某处看到它,但是我尝试过的所有关键字都是空的。通过密码器聚合关系

我有一个通过文件连接的个人和公司的图形:

(:人/:公司) - [] - (:文件) - [] - (:人/:公司)

我想要做的是返回一个图表,根据人与公司之间的连接数量直接显示人与公司之间的关系。

我得到的数据与

MATCH (p)-[]-(d:Document)-[]-(c) 
WHERE p:Person or p:Company and c:Person or c:Company 
WITH p,c, count(d) as rel 
RETURN p,rel,c 

然而,在Neo4j的浏览器,节点出现没有任何关系。有没有办法实现这一点,还是我必须创建某种元关系?

+0

双击一个节点以弹出打开关系。 –

+0

但它然后通过文件打开关系的关系。我希望将关系直接显示在人员/公司节点之间。 – EliasAtBerlin

+0

匹配(p:Person) - [] - (d:Document) - [] - (c:Company)选择应该足够,因为关系没有方向。 –

回答

0

如果您安装了APOC过程,您将能够创建virtual relationships,它们用于可视化,但实际上并未存储在数据库中。

MATCH (p)-[]-(d:Document)-[]-(c) 
WHERE (p:Person or p:Company AND c:Person or c:Company) 
AND id(p) < id(c) 
WITH p,c, count(d) as relStrength 
CALL apoc.create.vRelationship(p,'REL',{strength:relStrength}, c) YIELD rel 
RETURN p,rel,c 

我还增加了P的ID的谓词和c,这样你就不会重复与P和C相同的两个节点切换。