部分 概述
第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