|| apoc.meta.graph.of - APOC 核心文档 - Neo4j 文档

apoc.meta.graph.of

此存储过程返回只能由其他 APOC 存储过程访问的虚拟节点和关系。欲了解更多信息,请参阅虚拟节点与关系 (图投影)

此存储过程不被认为是多线程安全运行的。因此,它不受并行运行时支持。欲了解更多信息,请参阅Cypher 手册 → 并行运行时

详情

语法

apoc.meta.graph.of([ 图, 配置 ]) :: (节点, 关系)

描述

检查给定的子图并返回一个元图。

输入参数

名称

类型

描述

任意

从中提取元数据的图。默认值为:{}

配置

映射

检查关系以消除误报的节点数量,以及每个采样节点读取的关系数量。-1 值将读取所有;{ sample = 1 :: INTEGER, maxRels = -1 :: INTEGER, addRelationshipsBetweenNodes = true :: BOOLEAN } 默认值为:{}

返回参数

名称

类型

描述

节点

LIST<NODE>

表示元数据的节点。

关系

LIST<RELATIONSHIP>

表示元数据的关系。

配置参数

此存储过程支持以下配置参数

配置参数
名称 类型 默认值 描述

采样

整数

1

检查关系以消除误报的节点数量。请参见下面的“采样”部分。

maxRels

整数

100

要分析的关系数量,按关系类型、起始和结束标签分类,以移除/添加因采样结果错误插入/未插入的关系。

addRelationshipsBetweenNodes

布尔值

true

每种关系类型要采样的关系数量。

采样

此存储过程通过使用数据库统计信息工作。每个标签都会返回一个新节点,其连接关系根据 [:R]→(:N) 和 (:M)→[:R] 的配对组合计算。例如,对于图 (:A)-[:R]→(:B)-[:R]→(:C),路径 (:B)-[:R]→(:B) 将从 [:R]→(:B) 和 (:B)-[:R] 的组合中计算出来。此过程默认会对数据进行后处理,移除所有不存在的关系。这是通过扫描节点及其关系完成的。如果未找到关系,则会从最终结果中移除。这会减慢存储过程的速度,但会生成准确的 schema。

请参阅 apoc.meta.graphSample 以避免执行任何后处理。

还可以指定要扫描多少节点和关系。配置参数 sample 给出跳过计数,而 maxRels 参数给出每个节点将检查的最大关系数量。如果 sample 设置为 100,这意味着每个标签的每第 100 个节点将被检查;而 maxRels 设置为 100 意味着对于读取的每个节点,只读取前 100 个关系。请注意,如果设置了这些值,并且在这些约束内未找到关系,则假定该关系不存在,这可能会导致误报。

如果 sample 值高于该标签的节点数量,则只会检查一个节点。

使用示例

支持的输入图类型

类型 描述

字符串

一个 Cypher 查询

虚拟图

apoc.graph.* 返回的虚拟图

映射

一个包含两个字段的映射:nodes (节点列表,必填),relationships (关系列表)

如果您有一个相当复杂的图,并且想要分析并获取其中特定子图的一些信息,您可以利用 apoc.meta.graph.of 存储过程。

因此,对于给定的图模型

apoc.meta.graph.example

您可以这样利用 apoc.meta.graph.of 存储过程

apoc.meta.graph.of

这将提取所提供查询的元图,并附带一些统计信息,例如查询中涉及的每个节点的 count

如果您想了解更多详细信息,还可以查看 apoc.meta.graph 文档

© . This site is unofficial and not affiliated with Neo4j, Inc.