虚拟节点与关系 (图投影)
虚拟节点和关系并不存在于图中,它们仅由查询返回,并可用于表示图投影。
它们可用于可视化投影数据,例如将多个关系聚合成一个,或将中间节点折叠为虚拟关系。我们可以将引用图投影为虚拟的作者-作者或论文-论文图,并在它们之间建立聚合关系,甚至可以将 Twitter 数据转换为用户-用户提及图。
我们可以结合真实和虚拟实体,例如在两个真实节点之间创建虚拟关系,或者从虚拟节点到真实节点创建虚拟关系。
使用虚拟节点
虚拟节点无法直接从图中查询,因为它们必须保存在本地查找结构中。这意味着某些内置的 Cypher 函数可能无法正常工作。例如,在虚拟节点或关系上使用 /docs/cypher-manual/25/functions/list/#functions-labels[labels()^] 函数将返回一个空列表 []。
APOC 提供了方便使用虚拟节点和关系的函数。
| 限定名称 | 类型 |
|---|---|
apoc.any.properties |
|
apoc.any.property |
|
apoc.map.groupBy |
|
apoc.node.id |
|
apoc.node.labels |
|
apoc.rel.endNode |
|
apoc.rel.id |
|
apoc.rel.startNode |
|
apoc.rel.type |
|
Virtual Nodes and Relationships have negative ids. |
虚拟实体还具有以下用例:
-
仅向可视化工具返回节点/关系的选定属性(例如,删除大型或敏感属性)。
-
可视化图算法发现的集群。
-
将信息聚合到更高层级的抽象。
-
跳过较长路径中的中间节点。
-
出于安全原因隐藏属性或中间节点/关系。
-
图分组。
-
将来自其他来源(计算、RDBMS、文档数据库、CSV、XML、JSON)的数据可视化为图,而无需存储它。
-
投影部分数据。
有关如何使用这些过程的更多信息,请参阅: