目 录第1章 图论和数据库 11.1 Neo4j 3.x简介和图的历史 11.2 图论的定义和用途 31.2.1 社会学研究 51.2.2 生物学研究 61.2.3 计算机科学 61.2.4 流量问题 71.2.5 路径问题 81.2.6 网页搜索 91.3 背景 101.3.1 导航数据库 111.3.2 关系数据库 131.3.3 NoSQL数据库 151.4 图数据库的属性图模型 181.4.1 节点标签 201.4.2 关系类型 201.5 使用图数据库的注意事项 201.5.1 为什么使用图数据库 201.5.2 什么时候不用图数据库以及用什么替代 221.6 问答 231.7 小结 23第2章 Neo4j基础入门 252.1 Neo4j的关键概念和特点 252.1.1 从头开始创建图 252.1.2 基于事务的ACID数据库 262.1.3 可用于联机事务处理 272.1.4 扩展性能 282.1.5 声明式查询语言Cypher 282.2 Neo4j典型案例 292.2.1 复杂的连接密集型查询 292.2.2 路径查询 292.2.3 开源解决方案 292.3 特性 302.4 许可协议 312.5 安装Neo4j 322.5.1 在Windows系统上安装Neo4j 322.5.2 在Mac和Linux系统上安装Neo4j 352.6 在云平台使用Neo4j 372.7 沙盒模式 412.8 在Docker容器中使用Neo4j 472.8.1 安装Docker 482.8.2 准备文件 482.8.3 在Docker容器中运行Neo4j 482.9 问答 502.10 小结 51第3章 Neo4j数据模型 523.1 四种基础数据结构 523.2 图数据库建模基础 533.2.1 ER图和关系模式 533.2.2 通过连接表引入复杂性 543.3 图模型—一个简单、高保真的现实模型 553.4 图建模—最佳实践和陷阱 573.4.1 图建模最佳实践 573.4.2 图数据库建模陷阱 613.5 问答 643.6 小结 65第4章 Cypher入门 664.1 Cypher的语法 664.2 Cypher的关键特性 674.3 与数据很好地结合 684.3.1 创建数据 684.3.2 读取数据 694.3.3 更新数据 704.3.4 删除数据 714.4 Cypher的关键操作词 724.5 语法约定 734.6 高级知识 744.7 Cypher参考卡 784.8 openCypher工程 794.9 小结 79第5章 过程—APOC 805.1 安装APOC 805.1.1 机器安装 815.1.2 Docker容器安装 815.2 检查APOC安装 815.3 函数和过程 825.4 习惯用法 825.4.1 来自朋友的建议 825.4.2 图概述 835.5 关键用法 855.5.1 安装 855.5.2 随机图生成器 855.5.3 网站排名 865.5.4 Cypher语句限时执行 865.5.5 节点集合连接 875.5.6 更多APOC 875.6 问答 885.7 小结 89第6章 Cypher扩展 906.1 构建扩展工程 906.1.1 创建函数 916.1.2 创建过程 926.2 定制聚合器 956.3 非托管扩展 966.3.1 HTTP和JAX-RS refreshers 976.3.2 JSON响应流式化 986.4 小结 101第7章 查询性能优化 1027.1 Explain和Profile指令 1027.1.1 查询计划 1027.1.2 运算符 1047.2 索引 1057.2.1 强制使用索引 1057.2.2 强制使用标签 1057.3 经验法则 1067.3.1 Explain所有查询 1067.3.2 行 1067.3.3 不要过度消耗资源 1067.3.4 返回笛卡儿积级别的数据 1067.3.5 简单 1067.4 小结 107第8章 Neo4j数据导入 1088.1 导入CSV文件 1088.2 导入JSON源 1118.3 导入JDBC源 1148.3.1 测试安装 1148.3.2 导入所有系统数据 1148.4 导入XML源 1158.5 小结 116第9章 空间 1189.1 空间简介 1189.1.1 回顾 1189.1.2 无缺陷塔 1199.1.3 什么是空间 1199.2 Neo4j的空间特性 1199.3 APOC的空间特性 1209.4 地理编码 1219.4.1 设置OSM为提供商 1219.4.2 设置谷歌为提供商 1219.5 Neo4j Spatial 1229.5.1 在线示例 1229.5.2 Neo4j Spatial特性 1229.6 导入OpenStreetMap数据 1249.7 大型OSM数据导入 1269.7.1 简易方法 1269.7.2 更直接的数据导入方法 1279.8 查询卫生间 1279.9 理解WKT和BBOX 1289.10 删除所有地理数据 1289.11 小结 129第10章 安全认证 13010.1 认证与授权 13010.2 角色 13110.3 用户管理 13210.4 Neo4j连接到LDAP目录 13210.5 使用LDAP配置Neo4j 13510.6 问答 13610.7 小结 136第11章 Neo4j 可视化 13711.1 可视化的重要作用 13711.1.1 为什么图数据可视化很重要 13711.1.2 直观地与数据进行交互 13711.1.3 模式识别 13811.1.4 发现重点 13911.2 图数据可视化的基本原则 13911.2.1 开源可视化组件库 14011.2.2 将可视化组件库应用到项目中 14311.2.3 可视化解决方案 14411.2.4 问题和陷阱 14811.2.5 Cytoscape实例 14911.3 问答 15211.4 小结 153第12章 Neo4j数据重构 15412.1 预备步骤 15412.2 简单改变 15412.2.1 重命名 15412.2.2 添加数据 15512.2.3 删除数据 15612.3 重大改变 15612.3.1 知道我们的模型 15612.3.2 重构工具 15712.3.3 属性变标签 15712.3.4 属性变节点 15712.3.5 相关节点变标签 15812.3.6 合并节点 15812.3.7 关系 15912.4 结论 16212.5 小结 162第13章 集群 16313.1 为什么需要Neo4j集群 16313.2 Neo4j集群的概念 16413.2.1 核心服务器 16413.2.2 只读副本服务器 16413.2.3 高吞吐量 16413.2.4 数据冗余 16513.2.5 高可用 16513.2.6 Bolt协议 16513.3 构建Neo4j集群 16513.3.1 核心服务器 16513.3.2 只读副本服务器 16713.3.3 bolt+routing协议 16813.4 在Neo4j集群中实现灾难恢复 16913.5 小结 169第14章 案例—推荐系统 17014.1 推荐系统剖析 17014.2 推荐系统的图模型应用 17114.3 推荐系统查询示例 17314.3.1 基于商品购买的推荐 17314.3.2 基于品牌忠诚度的推荐 17514.3.3 基于社交关系的推荐 17614.3.4 组合推荐 17614.4 推荐系统的业务变化 17714.5 欺诈检测系统 17814.6 访问控制系统 17914.7 社交网络系统 17914.8 问答 18014.9 小结 181第15章 案例—影响分析与模拟 18215.1 影响分析系统解析 18215.1.1 影响分析在业务流程管理中的应用 18315.1.2 业务图建模 18315.2 成本计算环境中的影响模拟 18715.2.1 产品层次结构的图建模 18715.2.2 产品层次结构图的应用 18815.3 问答 19215.4 小结 193附录 应用技巧介绍 194
微信广告投放 广告热搜 微信广告推广 线下广告投放 知识库 关键词 爱奇艺广告投放 电商培训 站外推广 价格 网站地图 广告投放渠道 app广告投放 排行榜 广告投放 免费在线办公 直播推广 广告创意 媒体投放 京东智联云 信息流广告 广告投放平台 b站广告投放 企业广告投放 微信广告怎么推广 快手广告投放 新款 图片 京点书院 抖音广告
本书共15章,介绍图论和图数据库、Neo4j基础、Neo4j数据模型、Cypher入门、APOC和Cypher扩展、查询性能优化、Neo4j数据导入、空间、安全认证、Neo4j可视化、Neo4j数据重构、集群等内容,1后通过两大案例(推荐系统和影响分析与模拟)的讲解,使你获得图数据建模与设计的技能。
本书既可以作为Neo4j初学者的入门教材,也可以作为相关行业Neo4j技术专家的参考手册。
目 录
第1章 图论和数据库 1
1.1 Neo4j 3.x简介和图的历史 1
1.2 图论的定义和用途 3
1.2.1 社会学研究 5
1.2.2 生物学研究 6
1.2.3 计算机科学 6
1.2.4 流量问题 7
1.2.5 路径问题 8
1.2.6 网页搜索 9
1.3 背景 10
1.3.1 导航数据库 11
1.3.2 关系数据库 13
1.3.3 NoSQL数据库 15
1.4 图数据库的属性图模型 18
1.4.1 节点标签 20
1.4.2 关系类型 20
1.5 使用图数据库的注意事项 20
1.5.1 为什么使用图数据库 20
1.5.2 什么时候不用图数据库以及用什么替代 22
1.6 问答 23
1.7 小结 23
第2章 Neo4j基础入门 25
2.1 Neo4j的关键概念和特点 25
2.1.1 从头开始创建图 25
2.1.2 基于事务的ACID数据库 26
2.1.3 可用于联机事务处理 27
2.1.4 扩展性能 28
2.1.5 声明式查询语言Cypher 28
2.2 Neo4j典型案例 29
2.2.1 复杂的连接密集型查询 29
2.2.2 路径查询 29
2.2.3 开源解决方案 29
2.3 特性 30
2.4 许可协议 31
2.5 安装Neo4j 32
2.5.1 在Windows系统上安装Neo4j 32
2.5.2 在Mac和Linux系统上安装Neo4j 35
2.6 在云平台使用Neo4j 37
2.7 沙盒模式 41
2.8 在Docker容器中使用Neo4j 47
2.8.1 安装Docker 48
2.8.2 准备文件 48
2.8.3 在Docker容器中运行Neo4j 48
2.9 问答 50
2.10 小结 51
第3章 Neo4j数据模型 52
3.1 四种基础数据结构 52
3.2 图数据库建模基础 53
3.2.1 ER图和关系模式 53
3.2.2 通过连接表引入复杂性 54
3.3 图模型—一个简单、高保真的现实模型 55
3.4 图建模—最佳实践和陷阱 57
3.4.1 图建模最佳实践 57
3.4.2 图数据库建模陷阱 61
3.5 问答 64
3.6 小结 65
第4章 Cypher入门 66
4.1 Cypher的语法 66
4.2 Cypher的关键特性 67
4.3 与数据很好地结合 68
4.3.1 创建数据 68
4.3.2 读取数据 69
4.3.3 更新数据 70
4.3.4 删除数据 71
4.4 Cypher的关键操作词 72
4.5 语法约定 73
4.6 高级知识 74
4.7 Cypher参考卡 78
4.8 openCypher工程 79
4.9 小结 79
第5章 过程—APOC 80
5.1 安装APOC 80
5.1.1 机器安装 81
5.1.2 Docker容器安装 81
5.2 检查APOC安装 81
5.3 函数和过程 82
5.4 习惯用法 82
5.4.1 来自朋友的建议 82
5.4.2 图概述 83
5.5 关键用法 85
5.5.1 安装 85
5.5.2 随机图生成器 85
5.5.3 网站排名 86
5.5.4 Cypher语句限时执行 86
5.5.5 节点集合连接 87
5.5.6 更多APOC 87
5.6 问答 88
5.7 小结 89
第6章 Cypher扩展 90
6.1 构建扩展工程 90
6.1.1 创建函数 91
6.1.2 创建过程 92
6.2 定制聚合器 95
6.3 非托管扩展 96
6.3.1 HTTP和JAX-RS refreshers 97
6.3.2 JSON响应流式化 98
6.4 小结 101
第7章 查询性能优化 102
7.1 Explain和Profile指令 102
7.1.1 查询计划 102
7.1.2 运算符 104
7.2 索引 105
7.2.1 强制使用索引 105
7.2.2 强制使用标签 105
7.3 经验法则 106
7.3.1 Explain所有查询 106
7.3.2 行 106
7.3.3 不要过度消耗资源 106
7.3.4 返回笛卡儿积级别的数据 106
7.3.5 简单 106
7.4 小结 107
第8章 Neo4j数据导入 108
8.1 导入CSV文件 108
8.2 导入JSON源 111
8.3 导入JDBC源 114
8.3.1 测试安装 114
8.3.2 导入所有系统数据 114
8.4 导入XML源 115
8.5 小结 116
第9章 空间 118
9.1 空间简介 118
9.1.1 回顾 118
9.1.2 无缺陷塔 119
9.1.3 什么是空间 119
9.2 Neo4j的空间特性 119
9.3 APOC的空间特性 120
9.4 地理编码 121
9.4.1 设置OSM为提供商 121
9.4.2 设置谷歌为提供商 121
9.5 Neo4j Spatial 122
9.5.1 在线示例 122
9.5.2 Neo4j Spatial特性 122
9.6 导入OpenStreetMap数据 124
9.7 大型OSM数据导入 126
9.7.1 简易方法 126
9.7.2 更直接的数据导入方法 127
9.8 查询卫生间 127
9.9 理解WKT和BBOX 128
9.10 删除所有地理数据 128
9.11 小结 129
第10章 安全认证 130
10.1 认证与授权 130
10.2 角色 131
10.3 用户管理 132
10.4 Neo4j连接到LDAP目录 132
10.5 使用LDAP配置Neo4j 135
10.6 问答 136
10.7 小结 136
第11章 Neo4j 可视化 137
11.1 可视化的重要作用 137
11.1.1 为什么图数据可视化很重要 137
11.1.2 直观地与数据进行交互 137
11.1.3 模式识别 138
11.1.4 发现重点 139
11.2 图数据可视化的基本原则 139
11.2.1 开源可视化组件库 140
11.2.2 将可视化组件库应用到项目中 143
11.2.3 可视化解决方案 144
11.2.4 问题和陷阱 148
11.2.5 Cytoscape实例 149
11.3 问答 152
11.4 小结 153
第12章 Neo4j数据重构 154
12.1 预备步骤 154
12.2 简单改变 154
12.2.1 重命名 154
12.2.2 添加数据 155
12.2.3 删除数据 156
12.3 重大改变 156
12.3.1 知道我们的模型 156
12.3.2 重构工具 157
12.3.3 属性变标签 157
12.3.4 属性变节点 157
12.3.5 相关节点变标签 158
12.3.6 合并节点 158
12.3.7 关系 159
12.4 结论 162
12.5 小结 162
第13章 集群 163
13.1 为什么需要Neo4j集群 163
13.2 Neo4j集群的概念 164
13.2.1 核心服务器 164
13.2.2 只读副本服务器 164
13.2.3 高吞吐量 164
13.2.4 数据冗余 165
13.2.5 高可用 165
13.2.6 Bolt协议 165
13.3 构建Neo4j集群 165
13.3.1 核心服务器 165
13.3.2 只读副本服务器 167
13.3.3 bolt+routing协议 168
13.4 在Neo4j集群中实现灾难恢复 169
13.5 小结 169
第14章 案例—推荐系统 170
14.1 推荐系统剖析 170
14.2 推荐系统的图模型应用 171
14.3 推荐系统查询示例 173
14.3.1 基于商品购买的推荐 173
14.3.2 基于品牌忠诚度的推荐 175
14.3.3 基于社交关系的推荐 176
14.3.4 组合推荐 176
14.4 推荐系统的业务变化 177
14.5 欺诈检测系统 178
14.6 访问控制系统 179
14.7 社交网络系统 179
14.8 问答 180
14.9 小结 181
第15章 案例—影响分析与模拟 182
15.1 影响分析系统解析 182
15.1.1 影响分析在业务流程管理中的应用 183
15.1.2 业务图建模 183
15.2 成本计算环境中的影响模拟 187
15.2.1 产品层次结构的图建模 187
15.2.2 产品层次结构图的应用 188
15.3 问答 192
15.4 小结 193
附录 应用技巧介绍 194