Neo4j 通过cypher聚合关系

Neo4j 通过cypher聚合关系,neo4j,cypher,Neo4j,Cypher,我相当肯定我在某处见过它,但我尝试过的所有关键词都是空的 我有一个通过文档连接个人和公司的图表: (:个人/:公司)-[]-(:文件)-[]-(:个人/:公司) 我想做的是返回一个图表,直接显示个人和公司之间的联系,以及基于他们之间联系数量的关系强度 我用计算机获取数据 MATCH (p)-[]-(d:Document)-[]-(c) WHERE p:Person or p:Company and c:Person or c:Company WITH p,c, count(d) as rel R

我相当肯定我在某处见过它,但我尝试过的所有关键词都是空的

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

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

我想做的是返回一个图表,直接显示个人和公司之间的联系,以及基于他们之间联系数量的关系强度

我用计算机获取数据

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浏览器中,节点显示时没有任何关系。有没有办法实现这一点,或者我必须创建某种元关系?

如果安装APOC过程,您将能够创建用于可视化但实际上不存储在数据库中的过程

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)-[]-(d:文档)-[]-(c)
其中(p:个人或p:公司和c:个人或c:公司)
和id(p)

我还在p和c的ID上添加了一个谓词,这样在p和c切换的情况下就不会重复相同的两个节点。

双击一个节点以弹出打开关系。但是它会通过文档打开所有关系。我希望直接显示人员/公司节点之间的关系。要选择的匹配(p:person)-[]-(d:Document)-[]-(c:company)应该足够了,因为在关系上没有方向。然后您必须在关系上有一个别名并返回它们。但我不想返回这些关系。我有一个数据模型(:Person/:Company)-[]-(:Document)-[]-(:Person/:Company),希望在Neo4J浏览器als(:Person/:Company)-[连接数]-(:Person/:Company)中可视化,而不实际更改基础数据模型。