Neo4j图数据库扩展指南:APOC和ALGO俞方桦有限公司 pdf下载pdf下载

Neo4j图数据库扩展指南:APOC和ALGO俞方桦有限公司百度网盘pdf下载

作者:
简介:本篇提供书籍《Neo4j图数据库扩展指南:APOC和ALGO俞方桦有限公司》百度网盘pdf下载
出版社:古韵图书专营店
出版时间:2019-05
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

  商品基本信息,请以下列介绍为准
商品名称:Neo4j图数据库扩展指南:APOC和ALGO
作者:俞方桦,张帜
定价:79.0
出版社:清华大学出版社有限公司
出版日期:2019-05-01
ISBN:9787302555483
印次:1
版次:1
装帧:
开本:26开

  内容简介
Neo4j是当今全球的图数据库软件,其起源于开源的图数据库项目,经过十余年的发展,已经在国内和国外的各类企业、研究机构中有着广泛的应用。随着数据库规模的增加,以及对图算法类型、查询性能和数据库能等要求越来越高,Neo4j推出了扩APOC和ALGO以满足这些要求。
本书基于Neo4j数据库3.5版本及其对应的ALGO和APOC扩,详细介绍二百个主要过程和函数的定义、相关理论、使用方法、代码样例,让广大Neo4j图数据库的设计和开发人员能够快速掌握的图数据库分析方法及其应用开发技能。
作为《图数据库技术丛书》系列的第三本,本书的内容与前两本承上启下,可以作为Neo4j数据库的中高级设计人员、开发工程师以及数据科学家的技术参考手册。

  目录
部分 概述

章 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.expand33

3.3.4 过程调用接口-apoc.path.expand33

3.3.5 示例-创建三国人物关系图33

3.3.6 示例-apoc.path.expand34

3.4 可配置的路径扩展过程35

3.4.1 定义35

3.4.2 过程概述-apoc.path.expandConfig36

3.4.3 过程调用接口-apoc.path.expandConfig36

3.4.4 示例-apoc.path.expandConfig37

3.5 搜索子图38

3.5.1 定义38

3.5.2 应用39

3.5.3 过程概述-apoc.path.graphNodes39

3.5.4 过程调用接口-apoc.path.graphNodes39

3.5.5 示例-apoc.path.graphNodes41

3.6 搜索小生成树42

第4章 查询任务管理43

4.1 查询任务管理概述43

4.2 按照条件循环执行-commit46

4.2.1 定义46

4.2.2 应用47

4.2.3 过程概述-apoc.periodic.commit47

4.2.4 过程调用接口-apoc.periodic.commit47

4.2.5 示例-apoc.periodic.commit47

4.3 按照集合内容循环执行-iterate48

4.3.1 定义48

4.3.2 应用49

4.3.3 过程概述-apoc.periodic.iterate49

4.3.4 过程调用接口-apoc.periodic.iterate49

4.3.5 示例-apoc.periodic.iterate50

4.4 异步执行Cypher查询-mit51

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.run56

4.6.4 示例-apoc.cypher.run56

4.6.5 过程调用接口-apoc.cypher.runTimeboxed56

4.6.6 示例-apoc.cypher.runTimeboxed57

4.6.7 过程调用接口-apoc.cypher.doIt58

4.6.8 示例-apoc.cypher.doIt58

4.6.9 过程调用接口-apoc.cypher.runFiles59

4.6.10 过程调用接口-apoc.cypher.runSchemaFiles60

4.6.11 过程调用接口-apoc.cypher.parallel60

4.6.12 示例-apoc.cypher.parallel61

4.6.13 过程调用接口-apoc.cypher.mapParallel61

4.6.14 示例-apoc.cypher.mapParallel61

4.7 Cypher执行的条件分支62

4.7.1 定义62

4.7.2 应用62

4.7.3 过程调用接口-apoc.*.when62

4.7.4 示例-apoc.when63

4.7.5 过程调用接口-apoc.case63

4.7.6 示例-apoc.cypher.*case64

第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.all70

5.2.5 示例-export.csv.all70

5.2.6 过程调用接口-export.csv.data71

5.2.7 示例-export.csv.data71

5.2.8 过程调用接口-export.csv.graph72

5.2.9 示例-export.csv.graph72

5.2.10 过程调用接口-export.csv.query73

5.2.11 示例-export.csv.query73

5.3 导出到JSON文件73

5.3.1 定义73

5.3.2 应用74

5.3.3 过程概述74

5.3.4 过程调用接口-export.json.all74

5.3.5 示例-export.json.all74

5.3.6 过程调用接口-export.json.data74

5.3.7 示例-export.json.data75

5.3.8 过程调用接口-export.csv.graph75

5.3.9 示例-export.json.graph76

5.3.10 过程调用接口-export.json.query76

5.3.11 示例-export.json.query76

5.4 导出到Cypher查询文件77

5.4.1 定义77

5.4.2 应用77

5.4.3 过程概述77

5.4.4 过程调用接口-export.cypher.all77

5.4.5 示例-export.cypher.all78

5.4.6 过程调用接口-export.cypher.data79

5.4.7 示例-export.cypher.data79

5.4.8 过程调用接口-export.cypher.graph79

5.4.9 示例-export.cypher.graph80

5.4.10 过程调用接口-export.cypher.query80

5.4.11 示例-export.cypher.query81

5.4.12 过程调用接口-export.cypher.schema81

5.4.13 示例-export.cypher.schema82

5.5 导入CSV文件82

5.5.1 定义82

5.5.2 应用82

5.5.3 过程概述82

5.5.4 过程调用接口-apoc.load.csv83

5.5.5 示例-apoc.load.csv84

5.6 导入JSON数据85

5.6.1 定义85

5.6.2 应用87

5.6.3 过程概述87

5.6.4 过程调用接口-apoc.load.json87

5.6.5 示例-apoc.load.json88

5.7 导入XML 文件90

5.7.1 定义90

5.7.2 导入XML文档-apoc.xml.import90

5.7.3 示例-apoc.xml.import92

5.7.4 XML文档加载-apoc.load.xml94

5.7.5 示例-apoc.load.xml95

5.8 访问其他Neo4j数据库96

5.8.1 概述96

5.8.2 过程定义-apoc.bolt.execute97

5.8.3 过程调用接口-apoc.bolt.execute97

5.8.4 示例-apoc.bolt.execute98

5.8.5 过程定义-apoc.bolt.load99

5.9 从JDBC源导入数据99

5.9.1 概述99

5.9.2 过程定义-apoc.load.driver101

5.9.3 过程调用接口-apoc.load.driver101

5.9.4 过程定义-apoc.load.jdbc102

5.9.5 过程调用接口-apoc.load.jdbc102

5.9.6 示例-apoc.load.jdbc102

5.9.7 过程定义-apoc.load.jdbcUpdate103

5.9.8 过程调用接口-apoc.load.jdbcUpdate103

5.9.9 示例-apoc.load.jdbcUpdate104

5.9.10 过程定义-apoc.model.jdbc104

5.9.11 过程调用接口-apoc.model.jdbc104

5.9.12 示例-apoc.model.jdbc105

第6章 图重构107

6.1 图重构概述107

6.2 克隆节点108

6.2.1 定义108

6.2.2 过程概述109

6.2.3 过程调用接口-apoc.refactor.cloneNodes109

6.2.4 示例-apoc.refactor.cloneNodes109

6.3 克隆节点及其关系110

6.3.1 定义110

6.3.2 过程概述110

6.3.3 过程调用接口-apoc.refactor.cloneNodesWithRelationships110

6.4 克隆子图110

6.4.1 定义110

6.4.2 过程概述111

6.4.3 过程调用接口-apoc.refactor.cloneSubgraph111

6.4.4 示例-apoc.refactor.cloneSubgraph111

6.5 合并节点112

6.5.1 定义112

6.5.2 过程概述112

6.5.3 过程调用接口-apoc.refactor.mergeNodes112

6.5.4 示例-apoc.refactor.mergeNodes112

6.6 合并关系113

6.6.1 定义113

6.6.2 过程概述113

6.6.3 过程调用接口-apoc.refactor.mergeRelationships114

6.6.4 示例-apoc.refactor.mergeRelationships114

6.7 重定向关系115

6.7.1 定义115

6.7.2 过程概述115

6.7.3 过程调用接口-apoc.refactor.from115

6.7.4 示例-apoc.refactor.from116

6.8 反转关系116

6.8.1 定义116

6.8.2 过程概述116

6.8.3 过程调用接口-apoc.refactor.invert117

6.8.4 示例-apoc.refactor.invert117

6.9 设置关系类型117

6.9.1 定义117

6.9.2 过程概述118

6.9.3 过程调用接口-apoc.refactor.setType118

6.9.4 示例-apoc.refactor.setType118

6.10 将关系转换成节点118

6.10.1 定义118

6.10.2 过程概述119

6.10.3 过程调用接口-apoc.refactor.extractNode119

6.10.4 示例-apoc.refactor.extractNode119

6.11 将节点转换为关系120

6.11.1 定义120

6.11.2 过程概述120

6.11.3 过程调用接口-apoc.refactor.collapseNode120

6.11.4 示例-apoc.refactor.cloneNodes121

6.12 标准化为布尔值121

6.12.1 定义121

6.12.2 过程概述121

6.12.3 过程调用接口-apoc.refactor.normalizeAsBoolean121

6.12.4 示例-apoc.refactor.normalizeAsBoolean122

6.13 分类123

6.13.1 定义123

6.13.2 过程概述123

6.13.3 过程调用接口-apoc.refactor.categorize123

6.13.4 示例-apoc.refactor.categorize124

6.14 重命名125

6.14.1 定义125

6.14.2 过程概述125

6.14.3 示例-apoc.refactor.rename.nodeProperty125

第7章 数据库运维127

7.1 数据库运维概述127

7.2 使用触发器129

7.2.1 概述129

7.2.2 过程概述-apoc.trigger.130

7.2.3 过程调用接口-apoc.trigger.131

7.2.4 示例-apoc.trigger.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.combine146

8.3.3 函数调用接口-apoc.path.combine146

8.3.4 示例-apoc.path.combine146

8.3.5 函数概述-apoc.path.create147

8.3.6 函数调用接口-apoc.path.create147

8.3.7 示例-apoc.path.create147

8.3.8 函数概述-apoc.path.elements147

8.3.9 函数调用接口-apoc.path.elements147

8.3.10 示例-apoc.path.elements148

8.3.11 函数概述-apoc.path.slice148

8.3.12 函数调用接口-apoc.path.slice148

8.3.13 示例-apoc.path.slice148

8.4 并行节点搜索149

8.4.1 概述149

8.4.2 函数概述-apoc.search.node150

8.4.3 函数调用接口-apoc.search.node150

8.4.4 示例-apoc.search.node150

8.5 地图和空间计算能150

8.5.1 概述150

8.5.2 过程概述-apoc.spatial.geocode152

8.5.3 过程调用接口-apoc.spatial.geocode152

8.5.4 示例-apoc.spatial.geocode152

8.5.5 过程概述-apoc.spatial.reverseGeocode153

8.5.6 过程调用接口-apoc.spatial.reverseGeocode153

8.5.7 示例-apoc.spatial.reverseGeocode153

8.6 集合相关操作154

8.7 图生成157

8.7.1 概述157

8.7.2 过程概述-apoc.generate.er157

8.7.3 过程调用接口-apoc.generate.er158

8.7.4 示例-apoc.generate.er158

8.7.5 过程概述-apoc.generate.ws159

8.7.6 过程调用接口-apoc.generate.ws160

8.7.7 示例-apoc.generate.ws160

8.7.8 过程概述-apoc.generate.ba161

8.7.9 过程调用接口-apoc.generate.ba162

8.7.10 示例-apoc.generate.ba163

8.7.11 过程概述-apoc.generate.complete164

8.7.12 过程调用接口-apoc.generate.complete164

8.7.13 示例-apoc.generate.complete164

8.7.14 过程概述-apoc.generate.simple165

8.7.15 过程调用接口-apoc.generate.simple165

8.7.16 示例-apoc.generate.simple165

第9章 虚拟图167

9.1 虚拟图概述167

9.2 虚拟节点和关系168

9.2.1 概述168

9.2.2 过程概述-apoc.create.vNode170

9.2.3 过程调用接口-apoc.create.vNode171

9.2.4 示例-apoc.create.vNode171

9.2.5 过程概述-apoc.create.vNodes171

9.2.6 过程调用接口-apoc.create.vNodes171

9.2.7 示例-apoc.create.vNodes172

9.2.8 过程概述-apoc.create.vRelationship172

9.2.9 过程调用接口-apoc.create.vRelationship172

9.2.10 示例-apoc.create.vRelationship173

9.2.11 过程概述-apoc.create.vPattern174

9.2.12 过程调用接口-apoc.create.vPattern174

9.2.13 示例-apoc.create.vPattern174

9.2.14 过程概述-apoc.create.vPatternFull175

9.2.15 过程调用接口-apoc.create.vPatternFull175

9.2.16 过程概述-apoc.nodes.collapse176

9.2.17 过程调用接口-apoc.nodes.collapse176

9.2.18 示例-apoc.nodes.collapse177

9.3 虚拟图178

9.3.1 概述178

9.3.2 过程概述-apoc.graph.fromData179

9.3.3 过程调用接口-apoc.graph.fromData179

9.3.4 示例-apoc.graph.fromData179

9.3.5 过程概述-apoc.graph.fromPath179

9.3.6 过程调用接口-apoc.graph.fromPath180

9.3.7 示例-apoc.graph.fromPath180

9.3.8 过程概述-apoc.graph.fromPaths180

9.3.9 过程概述-apoc.graph.fromCypher180

9.3.10 过程调用接口-apoc.graph.fromCypher180

9.3.11 示例-apoc.graph.fromCypher181

9.3.12 过程概述-apoc.graph.fromDocument181

9.3.13 过程调用接口-apoc.graph.fromDocument181

9.3.14 示例-apoc.graph.fromDocument182

9.3.15 过程概述-apoc.nodes.group183

9.3.16 过程调用接口-apoc.nodes.group184

9.3.17 示例-apoc.nodes.group185

第三部分 ALGO扩使用指南

0章 路径搜索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.shortestPath194

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.allShortestPaths202

10.7 K-条短路径203

10.7.1 概述203

10.7.2 过程概述-algo.kShortestPaths*204

10.7.3 过程调用接口-algo.kShortestPaths*204

10.7.4 示例-algo.kShortestPaths206

10.8 小生成树206

10.8.1 概述206

10.8.2 过程概述-algo.spanningTree.*207

10.8.3 过程调用接口-algo.spanningTree.minimum207

10.8.4 示例-algo.spanningTree.minimum208

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.randomWalk211

1章 社团检测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.stream217

11.2.3 过程调用接口-algo.triangle*217

11.2.4 示例-algo.triangle.stream218

11.2.5 过程概述-algo.triangleCount*218

11.2.6 过程调用接口-algo.triangle*218

11.2.7 示例-algo.triangleCount.stream219

11.3 强连通分量219

11.3.1 概述219

11.3.2 过程概述-algo.scc220

11.3.3 过程调用接口-algo.scc221

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

2章 中心性算法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

3章 相似度算法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.jaccard258

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.overlap261

13.4 余弦相似度262

13.4.1 概述262

13.4.2 函数/过程概述-algo.similarity.cosine*263

13.4.3 调用接口-algo.similarity.cosine263

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数据库扩展开发指南

4章 数据库扩展开发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 个过程-hello279

14.4.2 编译和-hello281

14.4.3 部署和测试-hello283

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

5章 自定义的图遍历289

15.1 自定义的图遍历概述289

15.2 Neo4j 遍历框架289

15.2.1 主要概念290

15.2.2 遍历框架Java API290

15.3 生成测试图292

15.4 k-度邻居统计-Cypher的实现292

15.5 k-度邻居统计-扩展过程的实现293

15.5.1 创建过程293

15.5.2一步优化295


  
本书基于Neo4j数据库3.5版本及其对应的ALGO和APOC扩,详细介绍二百个主要过程和函数的定义、相关理论、使用方法、代码样例,让广大Neo4j图数据库的设计和开发人员能够快速掌握正确和的图数据库分析方法及其应用开发技能。

  作者简介