崩溃关系 Neo4j?
Collapse Relationships Neo4j?
neo4j 中可以 "collapse" 关系吗?我正在尝试绘制人与人之间的关系图,他们可以通过多种不同的方式相关 - 共享课程、共同撰写的论文、转发或推文提及。现在我正在将人、课程、论文和推文建模为节点。但我真正感兴趣的是对通过这些中间节点的人与人之间的关系进行建模。是否可以绘制隐式关系(人-课程-人)显式(人-人),同时仍将课程保持为节点?像这样 http://catalhoyuk.stanford.edu/network/teams/ - 幻灯片 2 和 3。
也欢迎任何其他数据建模建议。
是的,你可以做到。查询
MATCH(a:Person)-->(:Course)<--(b:Person)
CREATE (a)-[:IMPLICIT_RELATIONSHIP]->(b)
将在与同一课程相关的所有人之间创建类型为 :IMPLICIT_RELATIONSHIP
的关系。但是您可能不需要它,因为您可以从 a
横向移动到 b
以及从 b
横向移动到 a
而无需这种额外且不必要的关系。此外,如果您希望查询时的虚拟关系用于投影,您可以使用 APOC procedure apoc.create.vRelationship
.
APOC 程序文档说:
Virtual Nodes and Relationships don’t exist in the graph, they are
only returned to the UI/user for representing a graph projection. They
can be visualized or processed otherwise. Please note that they have
negative id’s.
neo4j 中可以 "collapse" 关系吗?我正在尝试绘制人与人之间的关系图,他们可以通过多种不同的方式相关 - 共享课程、共同撰写的论文、转发或推文提及。现在我正在将人、课程、论文和推文建模为节点。但我真正感兴趣的是对通过这些中间节点的人与人之间的关系进行建模。是否可以绘制隐式关系(人-课程-人)显式(人-人),同时仍将课程保持为节点?像这样 http://catalhoyuk.stanford.edu/network/teams/ - 幻灯片 2 和 3。
也欢迎任何其他数据建模建议。
是的,你可以做到。查询
MATCH(a:Person)-->(:Course)<--(b:Person)
CREATE (a)-[:IMPLICIT_RELATIONSHIP]->(b)
将在与同一课程相关的所有人之间创建类型为 :IMPLICIT_RELATIONSHIP
的关系。但是您可能不需要它,因为您可以从 a
横向移动到 b
以及从 b
横向移动到 a
而无需这种额外且不必要的关系。此外,如果您希望查询时的虚拟关系用于投影,您可以使用 APOC procedure apoc.create.vRelationship
.
APOC 程序文档说:
Virtual Nodes and Relationships don’t exist in the graph, they are only returned to the UI/user for representing a graph projection. They can be visualized or processed otherwise. Please note that they have negative id’s.