Neo4j图数据库扩展指南:APOC和ALGO
作者:俞方桦 著
出版时间: 2020年版
内容简介
本书共13章,全面、系统和详尽地介绍Neo4j图数据库扩展的概念、APOC和ALGO扩展包的使用、以及开发服务器扩展的方法。内容分为四个部分,依次为:Neo4j 图数据库扩展介绍;APOC 扩展包函数和过程指南;ALGO 扩展包函数和过程指南;开发和测试方法。
目录
部分 概述
第1章 Neo4j图数据库扩展概述 / 3
1.1 Neo4j图数据库平台 / 3
1.1.1 图数据库是当今热门的NoSQL数据库类别 / 3
1.1.2 Neo4j图数据库平台 / 4
1.1.3 原生图数据库 / 5
1.2 Neo4j数据库扩展 / 7
1.2.1 背景 / 7
1.2.2 APOC扩展库的内容 / 8
1.2.3 ALGO扩展库的内容 / 12
1.2.4 ALGO扩展库的未来版本 / 14
第2章 扩展包的安装和配置 / 18
2.1 扩展包的下载 / 18
2.2 扩展包的安装和配置 / 18
2.2.1 在Neo4j Desktop中自动安装 / 18
2.2.2 手动安装 / 19
2.2.3 在Docker容器中安装 / 19
2.2.4 测试安装 / 20
2.2.5 在线文档 / 20
第二部分 APOC扩展包使用指南
第3章 路径扩展过程 / 23
3.1 路径扩展过程概述 / 23
3.2 主要参数说明 / 25
3.2.1 标签过滤器(labelFilter) / 25
3.2.2 关系过滤器(relationshipFilter) / 25
3.2.3 标签和关系序列(Sequence) / 26
3.2.4 性规则(Uniqueness) / 27
3.2.5 理解Cypher的模式匹配 / 28
3.3 基本路径扩展过程 / 32
3.3.1 定义 / 32
3.3.2 应用 / 32
3.3.3 过程概述 – apoc.path.expand / 33
3.3.4 过程调用接口 – apoc.path.expand / 33
3.3.5 示例 – 创建三国人物关系图 / 33
3.3.6 示例 – apoc.path.expand / 34
3.4 可配置的路径扩展过程 / 35
3.4.1 定义 / 35
3.4.2 过程概述 – apoc.path.expandConfig / 36
3.4.3 过程调用接口 – apoc.path.expandConfig / 36
3.4.4 示例 – apoc.path.expandConfig / 37
3.5 搜索子图 / 38
3.5.1 定义 / 38
3.5.2 应用 / 39
3.5.3 过程概述 – apoc.path.subgraphNodes / 39
3.5.4 过程调用接口 – apoc.path.subgraphNodes / 39
3.5.5 示例 – apoc.path.subgraphNodes / 41
3.6 搜索小生成树 / 42
第4章 查询任务管理 / 43
4.1 查询任务管理概述 / 43
4.2 按照条件循环执行 – commit / 46
4.2.1 定义 / 46
4.2.2 应用 / 47
4.2.3 过程概述 – apoc.periodic.commit / 47
4.2.4 过程调用接口 – apoc.periodic.commit / 47
4.2.5 示例 – apoc.periodic.commit / 47
4.3 按照集合内容循环执行 – iterate / 48
4.3.1 定义 / 48
4.3.2 应用 / 49
4.3.3 过程概述 – apoc.periodic.iterate / 49
4.3.4 过程调用接口 – apoc.periodic.iterate / 49
4.3.5 示例 – apoc.periodic.iterate / 50
4.4 异步执行Cypher查询 – submit / 51
4.4.1 定义 / 51
4.4.2 应用 / 51
4.4.3 过程概述 / 51
4.4.4 示例 / 51
4.5 自定义Cypher函数和过程 / 52
4.5.1 定义 / 52
4.5.2 应用 / 52
4.5.3 过程调用接口 / 52
4.5.4 示例 / 54
4.6 Cypher执行过程 / 54
4.6.1 定义 / 54
4.6.2 应用 / 56
4.6.3 过程调用接口 – apoc.cypher.run / 56
4.6.4 示例 – apoc.cypher.run / 56
4.6.5 过程调用接口 – apoc.cypher.runTimeboxed / 56
4.6.6 示例 – apoc.cypher.runTimeboxed / 57
4.6.7 过程调用接口 – apoc.cypher.doIt / 58
4.6.8 示例 – apoc.cypher.doIt / 58
4.6.9 过程调用接口 – apoc.cypher.runFiles / 59
4.6.10 过程调用接口 – apoc.cypher.runSchemaFiles / 60
4.6.11 过程调用接口 – apoc.cypher.parallel / 60
4.6.12 示例 – apoc.cypher.parallel / 61
4.6.13 过程调用接口 – apoc.cypher.mapParallel / 61
4.6.14 示例 – apoc.cypher.mapParallel / 61
4.7 Cypher执行的条件分支 / 62
4.7.1 定义 / 62
4.7.2 应用 / 62
4.7.3 过程调用接口 – apoc.*.when / 62
4.7.4 示例 – apoc.when / 63
4.7.5 过程调用接口 – apoc.case / 63
4.7.6 示例 – apoc.cypher.*case / 64
第5章 数据导入和导出 / 65
5.1 数据导入和导出概述 / 65
5.2 导出到CSV文件 – export.csv.* / 69
5.2.1 定义 / 69
5.2.2 应用 / 69
5.2.3 过程概述 / 70
5.2.4 过程调用接口 – export.csv.all / 70
5.2.5 示例 – export.csv.all / 70
5.2.6 过程调用接口 – export.csv.data / 71
5.2.7 示例 – export.csv.data / 71
5.2.8 过程调用接口 – export.csv.graph / 72
5.2.9 示例 – export.csv.graph / 72
5.2.10 过程调用接口 – export.csv.query / 73
5.2.11 示例 – export.csv.query / 73
5.3 导出到JSON文件 / 73
5.3.1 定义 / 73
5.3.2 应用 / 74
5.3.3 过程概述 / 74
5.3.4 过程调用接口 – export.json.all / 74
5.3.5 示例 – export.json.all / 74
5.3.6 过程调用接口 – export.json.data / 74
5.3.7 示例 – export.json.data / 75
5.3.8 过程调用接口 – export.csv.graph / 75
5.3.9 示例 – export.json.graph / 76
5.3.10 过程调用接口 – export.json.query / 76
5.3.11 示例 – export.json.query / 76
5.4 导出到Cypher查询文件 / 77
5.4.1 定义 / 77
5.4.2 应用 / 77
5.4.3 过程概述 / 77
5.4.4 过程调用接口 – export.cypher.all / 77
5.4.5 示例 – export.cypher.all / 78
5.4.6 过程调用接口 – export.cypher.data / 79
5.4.7 示例 – export.cypher.data / 79
5.4.8 过程调用接口 – export.cypher.graph / 79
5.4.9 示例 – export.cypher.graph / 80
5.4.10 过程调用接口 – export.cypher.query / 80
5.4.11 示例 – export.cypher.query / 81
5.4.12 过程调用接口 – export.cypher.schema / 81
5.4.13 示例 – export.cypher.schema / 82
5.5 导入CSV文件 / 82
5.5.1 定义 / 82
5.5.2 应用 / 82
5.5.3 过程概述 / 82
5.5.4 过程调用接口 – apoc.load.csv / 83
5.5.5 示例 – apoc.load.csv / 84
5.6 导入JSON数据 / 85
5.6.1 定义 / 85
5.6.2 应用 / 87
5.6.3 过程概述 / 87
5.6.4 过程调用接口 – apoc.load.json / 87
5.6.5 示例 – apoc.load.json / 88
5.7 导入XML 文件 / 90
5.7.1 定义 / 90
5.7.2 导入XML文档 – apoc.xml.import / 90
5.7.3 示例 – apoc.xml.import / 92
5.7.4 XML文档加载 – apoc.load.xml / 94
5.7.5 示例 – apoc.load.xml / 95
5.8 访问其他Neo4j数据库 / 96
5.8.1 概述 / 96
5.8.2 过程定义 – apoc.bolt.execute / 97
5.8.3 过程调用接口 – apoc.bolt.execute / 97
5.8.4 示例 – apoc.bolt.execute / 98
5.8.5 过程定义 – apoc.bolt.load / 99
5.9 从JDBC源导入数据 / 99
5.9.1 概述 / 99
5.9.2 过程定义 – apoc.load.driver / 101
5.9.3 过程调用接口 – apoc.load.driver / 101
5.9.4 过程定义 – apoc.load.jdbc / 102
5.9.5 过程调用接口 – apoc.load.jdbc / 102
5.9.6 示例 – apoc.load.jdbc / 102
5.9.7 过程定义 – apoc.load.jdbcUpdate / 103
5.9.8 过程调用接口 – apoc.load.jdbcUpdate / 103
5.9.9 示例 – apoc.load.jdbcUpdate / 104
5.9.10 过程定义 – apoc.model.jdbc / 104
5.9.11 过程调用接口 – apoc.model.jdbc / 104
5.9.12 示例 – apoc.model.jdbc / 105
第6章 图重构 / 107
6.1 图重构概述 / 107
6.2 克隆节点 / 108
6.2.1 定义 / 108
6.2.2 过程概述 / 109
6.2.3 过程调用接口 – apoc.refactor.cloneNodes / 109
6.2.4 示例 – apoc.refactor.cloneNodes / 109
6.3 克隆节点及其关系 / 110
6.3.1 定义 / 110
6.3.2 过程概述 / 110
6.3.3 过程调用接口 – apoc.refactor.cloneNodesWithRelationships / 110
6.4 克隆子图 / 110
6.4.1 定义 / 110
6.4.2 过程概述 / 111
6.4.3 过程调用接口 – apoc.refactor.cloneSubgraph / 111
6.4.4 示例 – apoc.refactor.cloneSubgraph / 111
6.5 合并节点 / 112
6.5.1 定义 / 112
6.5.2 过程概述 / 112
6.5.3 过程调用接口 – apoc.refactor.mergeNodes / 112
6.5.4 示例 – apoc.refactor.mergeNodes / 112
6.6 合并关系 / 113
6.6.1 定义 / 113
6.6.2 过程概述 / 113
6.6.3 过程调用接口 – apoc.refactor.mergeRelationships / 114
6.6.4 示例 – apoc.refactor.mergeRelationships / 114
6.7 重定向关系 / 115
6.7.1 定义 / 115
6.7.2 过程概述 / 115
6.7.3 过程调用接口 – apoc.refactor.from / 115
6.7.4 示例 – apoc.refactor.from / 116
6.8 反转关系 / 116
6.8.1 定义 / 116
6.8.2 过程概述 / 116
6.8.3 过程调用接口 – apoc.refactor.invert / 117
6.8.4 示例 – apoc.refactor.invert / 117
6.9 设置关系类型 / 117
6.9.1 定义 / 117
6.9.2 过程概述 / 118
6.9.3 过程调用接口 – apoc.refactor.setType / 118
6.9.4 示例 – apoc.refactor.setType / 118
6.10 将关系转换成节点 / 118
6.10.1 定义 / 118
6.10.2 过程概述 / 119
6.10.3 过程调用接口 – apoc.refactor.extractNode / 119
6.10.4 示例 – apoc.refactor.extractNode / 119
6.11 将节点转换为关系 / 120
6.11.1 定义 / 120
6.11.2 过程概述 / 120
6.11.3 过程调用接口 – apoc.refactor.collapseNode / 120
6.11.4 示例 – apoc.refactor.cloneNodes / 121
6.12 标准化为布尔值 / 121
6.12.1 定义 / 121
6.12.2 过程概述 / 121
6.12.3 过程调用接口 – apoc.refactor.normalizeAsBoolean / 121
6.12.4 示例 – apoc.refactor.normalizeAsBoolean / 122
6.13 分类 / 123
6.13.1 定义 / 123
6.13.2 过程概述 / 123
6.13.3 过程调用接口 – apoc.refactor.categorize / 123
6.13.4 示例 – apoc.refactor.categorize / 124
6.14 重命名 / 125
6.14.1 定义 / 125
6.14.2 过程概述 / 125
6.14.3 示例 – apoc.refactor.rename.nodeProperty / 125
第7章 数据库运维 / 127
7.1 数据库运维概述 / 127
7.2 使用触发器 / 129
7.2.1 概述 / 129
7.2.2 过程概述 – apoc.trigger.add / 130
7.2.3 过程调用接口 – apoc.trigger.add / 131
7.2.4 示例 – apoc.trigger.add / 131
7.3 管理索引 / 132
7.3.1 概述 / 132
7.4 查看元数据 / 133
7.4.1 概述 / 133
7.4.2 过程概述 – apoc.meta.* / 134
7.4.3 过程调用接口 – apoc.meta.* / 134
7.4.4 示例 – apoc.meta.* / 135
7.5 数据库监控 / 136
7.5.1 概述 / 136
7.5.2 过程概述 – apoc.monitor.* / 136
7.5.3 过程调用接口 – apoc.monitor.* / 136
7.5.4 示例 – apoc.monitor.* / 136
第8章 工具函数和过程 / 138
8.1 工具函数和过程概述 / 138
8.2 节点相关操作 / 143
8.2.1 概述 / 143
8.3 路径相关操作 / 145
8.3.1 概述 / 145
8.3.2 函数概述 – apoc.path.combine / 146
8.3.3 函数调用接口 – apoc.path.combine / 146
8.3.4 示例 – apoc.path.combine / 146
8.3.5 函数概述 – apoc.path.create / 147
8.3.6 函数调用接口 – apoc.path.create / 147
8.3.7 示例 – apoc.path.create / 147
8.3.8 函数概述 – apoc.path.elements / 147
8.3.9 函数调用接口 – apoc.path.elements / 147
8.3.10 示例 – apoc.path.elements / 148
8.3.11 函数概述 – apoc.path.slice / 148
8.3.12 函数调用接口 – apoc.path.slice / 148
8.3.13 示例 – apoc.path.slice / 148
8.4 并行节点搜索 / 149
8.4.1 概述 / 149
8.4.2 函数概述 – apoc.search.node / 150
8.4.3 函数调用接口 – apoc.search.node / 150
8.4.4 示例 – apoc.search.node / 150
8.5 地图和空间计算相关功能 / 150
8.5.1 概述 / 150
8.5.2 过程概述 – apoc.spatial.geocode / 152
8.5.3 过程调用接口 – apoc.spatial.geocode / 152
8.5.4 示例 – apoc.spatial.geocode / 152
8.5.5 过程概述 – apoc.spatial.reverseGeocode / 153
8.5.6 过程调用接口 – apoc.spatial.reverseGeocode / 153
8.5.7 示例 – apoc.spatial.reverseGeocode / 153
8.6 集合相关操作 / 154
8.7 图生成 / 157
8.7.1 概述 / 157
8.7.2 过程概述 – apoc.generate.er / 157
8.7.3 过程调用接口 – apoc.generate.er / 158
8.7.4 示例 – apoc.generate.er / 158
8.7.5 过程概述 – apoc.generate.ws / 159
8.7.6 过程调用接口 – apoc.generate.ws / 160
8.7.7 示例 – apoc.generate.ws / 160
8.7.8 过程概述 – apoc.generate.ba / 161
8.7.9 过程调用接口 – apoc.generate.ba / 162
8.7.10 示例 – apoc.generate.ba / 163
8.7.11 过程概述 – apoc.generate.complete / 164
8.7.12 过程调用接口 – apoc.generate.complete / 164
8.7.13 示例 – apoc.generate.complete / 164
8.7.14 过程概述 – apoc.generate.simple / 165
8.7.15 过程调用接口 – apoc.generate.simple / 165
8.7.16 示例 – apoc.generate.simple / 165
第9章 虚拟图 / 167
9.1 虚拟图概述 / 167
9.2 虚拟节点和关系 / 168
9.2.1 概述 / 168
9.2.2 过程概述 – apoc.create.vNode / 170
9.2.3 过程调用接口 – apoc.create.vNode / 171
9.2.4 示例 – apoc.create.vNode / 171
9.2.5 过程概述 – apoc.create.vNodes / 171
9.2.6 过程调用接口 – apoc.create.vNodes / 171
9.2.7 示例 – apoc.create.vNodes / 172
9.2.8 过程概述 – apoc.create.vRelationship / 172
9.2.9 过程调用接口 – apoc.create.vRelationship / 172
9.2.10 示例 – apoc.create.vRelationship / 173
9.2.11 过程概述 – apoc.create.vPattern / 174
9.2.12 过程调用接口 – apoc.create.vPattern / 174
9.2.13 示例 – apoc.create.vPattern / 174
9.2.14 过程概述 – apoc.create.vPatternFull / 175
9.2.15 过程调用接口 – apoc.create.vPatternFull / 175
9.2.16 过程概述 – apoc.nodes.collapse / 176
9.2.17 过程调用接口 – apoc.nodes.collapse / 176
9.2.18 示例 – apoc.nodes.collapse / 177
9.3 虚拟图 / 178
9.3.1 概述 / 178
9.3.2 过程概述 – apoc.graph.fromData / 179
9.3.3 过程调用接口 – apoc.graph.fromData / 179
9.3.4 示例 – apoc.graph.fromData / 179
9.3.5 过程概述 – apoc.graph.fromPath / 179
9.3.6 过程调用接口 – apoc.graph.fromPath / 180
9.3.7 示例 – apoc.graph.fromPath / 180
9.3.8 过程概述 – apoc.graph.fromPaths / 180
9.3.9 过程概述 – apoc.graph.fromCypher / 180
9.3.10 过程调用接口 – apoc.graph.fromCypher / 180
9.3.11 示例 – apoc.graph.fromCypher / 181
9.3.12 过程概述 – apoc.graph.fromDocument / 181
9.3.13 过程调用接口 – apoc.graph.fromDocument / 181
9.3.14 示例 – apoc.graph.fromDocument / 182
9.3.15 过程概述 – apoc.nodes.group / 183
9.3.16 过程调用接口 – apoc.nodes.group / 184
9.3.17 示例 – apoc.nodes.group / 185
第三部分 ALGO扩展包使用指南
第10章 路径搜索 / 189
10.1 路径搜索概述 / 189
10.2 广度和深度优先搜索 / 192
10.3 短路径 / 192
10.3.1 概述 / 192
10.3.2 过程概述 – apoc.shortestPath* / 193
10.3.3 过程调用接口 – algo.shortestPath* / 193
10.3.4 示例 – algo.shortestPath / 194
10.4 A*短路径 / 196
10.4.1 概述 / 196
10.4.2 过程概述 – apoc.shortestPath.astar* / 196
10.4.3 过程调用接口 – algo.shortestPath* / 196
10.4.4 示例 – algo.shortestPath.astar* / 197
10.5 单源起点短路径 / 198
10.5.1 概述 / 198
10.5.2 过程概述 – apoc.shortestPath.deltaStepping* / 199
10.5.3 过程调用接口 – algo.shortestPath.deltaStepping* / 199
10.5.4 示例 – algo.shortestPath.deltaStepping* / 200
10.6 全图短路径 / 201
10.6.1 概述 / 201
10.6.2 过程概述 – algo.allShortestPaths* / 201
10.6.3 过程调用接口 – algo.allShortestPaths* / 201
10.6.4 示例 – algo.allShortestPaths / 202
10.7 K-条短路径 / 203
10.7.1 概述 / 203
10.7.2 过程概述 – algo.kShortestPaths* / 204
10.7.3 过程调用接口 – algo.kShortestPaths* / 204
10.7.4 示例 – algo.kShortestPaths / 206
10.8 小生成树 / 206
10.8.1 概述 / 206
10.8.2 过程概述 – algo.spanningTree.* / 207
10.8.3 过程调用接口 – algo.spanningTree.minimum / 207
10.8.4 示例 – algo.spanningTree.minimum / 208
10.9 随机游走 / 209
10.9.1 定义 / 209
10.9.2 应用 / 209
10.9.3 过程概述 / 209
10.9.4 简单过程调用接口 / 210
10.9.5 完整过程调用接口 / 210
10.9.6 示例 – algo.randomWalk / 211
第11章 社团检测 / 212
11.1 社团检测概述 / 212
11.1.1 算法一览 / 212
11.1.2 图的聚集成群特征 / 214
11.1.3 过程使用说明 / 215
11.2 三角计数和集聚系数 / 216
11.2.1 概述 / 216
11.2.2 过程概述 – algo.triangle.stream / 217
11.2.3 过程调用接口 – algo.triangle* / 217
11.2.4 示例 – algo.triangle.stream / 218
11.2.5 过程概述 – algo.triangleCount* / 218
11.2.6 过程调用接口 – algo.triangle* / 218
11.2.7 示例 – algo.triangleCount.stream / 219
11.3 强连通分量 / 219
11.3.1 概述 / 219
11.3.2 过程概述 – algo.scc / 220
11.3.3 过程调用接口 – algo.scc / 221
11.4 连通分量 / 221
11.4.1 概述 / 221
11.4.2 过程概述 – algo.unionFind* / 222
11.4.3 过程调用接口 – algo.unionFind* / 223
11.4.4 示例 – algo.unionFind* / 224
11.5 标签传播算法 / 224
11.5.1 概述 / 224
11.5.2 过程概述 – algo.labelPropagation* / 226
11.5.3 过程调用接口 – algo.labelPropagation* / 226
11.5.4 示例 – algo.unionFind* / 227
11.6 Louvain模块度算法 / 228
11.6.1 概述 / 228
11.6.2 过程概述 – algo.louvain* / 230
11.6.3 过程调用接口 – algo.louvain* / 230
11.6.4 示例 – algo.louvain* / 232
11.7 小结 / 233
第12章 中心性算法 / 234
12.1 中心性算法概述 / 234
12.2 度中心性 / 237
12.2.1 概述 / 237
12.2.2 过程概述 – algo.degree* / 238
12.2.3 过程调用接口 – algo.degree* / 238
12.2.4 示例 – algo.degree* / 239
12.3 紧密中心性 / 240
12.3.1 概述 / 240
12.3.2 过程概述 – algo.closeness* / 241
12.3.3 过程调用接口 – algo.closeness* / 241
12.3.4 示例 – algo.closeness* / 242
12.4 协调中心性 / 242
12.4.1 概述 / 242
12.4.2 过程概述 – algo.harmonic* / 243
12.4.3 过程调用接口 – algo.harmonic* / 243
12.4.4 示例 – algo.harmonic* / 244
12.5 间接中心性 / 244
12.5.1 概述 / 244
12.5.2 过程概述 – algo.betweenness* / 245
12.5.3 过程调用接口 – algo.betweenness* / 246
12.5.4 示例 – algo.betweenness* / 247
12.6 特征向量中心性 / 247
12.6.1 概述 / 247
12.6.2 过程概述 – algo.eigenvector* / 248
12.6.3 过程调用接口 – algo.eigenvector* / 248
12.6.4 示例 – algo.eigenvector* / 249
12.7 页面排行 / 250
12.7.1 概述 / 250
12.7.2 过程概述 – algo.pageRank* / 252
12.7.3 过程调用接口 – algo.pageRank* / 252
12.7.4 示例 – algo.pageRank* / 253
12.8 小结 / 254
第13章 相似度算法 / 255
13.1 相似度算法概述 / 255
13.1.1 相似度过程 / 255
13.1.2 什么是相似度 / 256
13.2 Jaccard相似度 / 257
13.2.1 概述 / 257
13.2.2 函数/过程概述 – algo.similarity.jaccard* / 258
13.2.3 调用接口 – algo.similarity.jaccard / 258
13.2.4 示例 – algo.similarity.jaccard* / 260
13.3 重叠相似度 / 260
13.3.1 概述 / 260
13.3.2 函数/过程概述 – algo.similarity.overlap* / 261
13.3.3 调用接口 – algo.similarity.overlap / 261
13.4 余弦相似度 / 262
13.4.1 概述 / 262
13.4.2 函数/过程概述 – algo.similarity.cosine* / 263
13.4.3 调用接口 – algo.similarity.cosine / 263
13.4.4 示例 – algo.similarity.cosine* / 264
13.5 欧几里德相似度 / 265
13.5.1 概述 / 265
13.5.2 函数/过程概述 – algo.similarity.euclideanDistance* / 265
13.5.3 调用接口 – algo.similarity.euclideanDistance* / 266
13.5.4 示例 – algo.similarity.euclideanDistance * / 267
第四部分 Neo4j数据库扩展开发指南
第14章 数据库扩展开发 / 271
14.1 数据库扩展开发概述 / 271
14.2 关于安全性 / 272
14.2.1 沙箱 / 272
14.2.2 白名单 / 273
14.3 创建数据库扩展项目 / 273
14.3.1 创建新项目 / 273
14.3.2 指定项目信息 / 275
14.3.3 创建程序包和过程类 / 277
14.4 创建数据库扩展过程 / 279
14.4.1 个过程 – hello / 279
14.4.2 编译和打包 – hello / 281
14.4.3 部署和测试 – hello / 283
14.4.4 小结 / 283
14.5 开发扩展函数 / 285
14.5.1 调用扩展函数 / 285
14.5.2 开发扩展函数 / 285
14.6 开发扩展汇总函数 / 286
14.6.1 调用汇总函数 / 286
14.6.2 编写用户定义的汇总函数 / 286
14.7 细粒度图数据访问控制 / 287
14.7.1 方法 / 288
14.7.2 定义用户和角色 / 288
14.7.3 实现扩展过程 / 288
第15章 自定义的图遍历 / 289
15.1 自定义的图遍历概述 / 289
15.2 Neo4j 遍历框架 / 289
15.2.1 主要概念 / 290
15.2.2 遍历框架Java API / 290
15.3 生成测试图 / 292
15.4 k-度邻居统计 – Cypher的实现 / 292
15.5 k-度邻居统计 – 扩展过程的实现 / 293
15.5.1 创建过程 / 293