内容简介
第1章 图论和数据库
1.1 Neo4j 3.x简介和图的历史
1.2图论的定义和用途
1.2.1社会学研究
1.2.2生物学研究
1.2.3计算机科学
1.2.4流量问题
1.2.5路径问题
1.2.6网页搜索
1.3背景
1.3.1导航数据库
1.3.2关系数据库
1.3.3 NoSQL数据库
1.4图数据库的属性图模型
1.4.1节点标签
1.4.2关系类型
1.5使用图数据库的注意事项
1.5.1为什么使用图数据库
1.5.2什么时候不用图数据库以及用什么替代
1.6问答
1.7小结
第2章 Neo4j基础入门
2.1 Neo4j的关键概念和特点
2.1.1从头开始创建图
2.1.2基于事务的ACID数据库
2.1.3可用于联机事务处理
2.1.4扩展性能
2.1.5声明式查询语言Cypher
2.2 Neo4j典型案例
2.2.1复杂的连接密集型查询
2.2.2路径查询
2.2.3开源解决方案
2.3特性
2.4许可协议
2.5安装Neo4j
2.5.1在Windows系统上安装Neo4j
2.5.2在Mac和Linux系统上安装Neo4j
2.6在云平台使用Neo4j
2.7沙盒模式
2.8在Docker容器中使用Neo4j
2.8.1安装Docker
2.8.2准备文件
2.8.3在Docker容器中运行Neo4j
2.9问答
2.10小结
第3章 Neo4j数据模型
3.1四种基础数据结构
3.2图数据库建模基础
3.2.1 ER图和关系模式
3.2.2通过连接表引入复杂性
3.3图模型——一个简单、高保真的现实模型
3.4图建模——最佳实践和陷阱
3.4.1图建模最佳实践
3.4.2图数据库建模陷阱
3.5问答
3.6小结
第4章 Cypher入门
4.1 Cypher的语法
4.2 Cypher的关键特性
4.3与数据很好地结合
4.3.1创建数据
4.3.2读取数据
4.3.3更新数据
4.3.4删除数据
4.4 Cypher的关键操作词
4.5语法约定
4.6高级知识
4.7 Cypher参考卡
4.8 openCypher工程
4.9小结
第5章 过程——APOC
5.1安装APOC
5.1.1机器安装
5.1.2 Docker容器安装
5.2检查APOC安装
5.3函数和过程
5.4习惯用法
5.4.1来自朋友的建议
5.4.2图概述
5.5关键用法
5.5.1安装
5.5.2随机图生成器
5.5.3网站排名
5.5.4 Cypher语句限时执行
5.5.5节点集合连接
5.5.6更多APOC
5.6问答
5.7小结
第6章 Cypher扩展
6.1构建扩展工程
6.1.1创建函数
6.1.2创建过程
6.2定制聚合器
6.3非托管扩展
6.3.1 HTTP和JAX-RS refreshers
6.3.2 JSON响应流式化
6.4小结
第7章 查询性能优化
7.1 Explain和Profile指令
7.1.1查询计划
7.1.2运算符
7.2索引
7.2.1强制使用索引
7.2.2强制使用标签
7.3经验法则
7.3.1 Explain所有查询
7.3.2行
7.3.3不要过度消耗资源
7.3.4返回笛卡儿积级别的数据
7.3.5简单
7.4小结
第8章 Neo4j数据导入
8.1导入CSV文件
8.2导入JSON源
8.3导入JDBC源
8.3.1测试安装
8.3.2导入所有系统数据
8.4导入XML源
8.5小结
第9章 空间
9.1空间简介
9.1.1回顾
9.1.2无缺陷塔
9.1.3什么是空间
9.2 Neo4j的空间特性
9.3 APOC的空间特性
9.4地理编码
9.4.1设置OSM为提供商
9.4.2设置谷歌为提供商
9.5 Neo4j Spatial
9.5.1在线示例
9.5.2 Neo4j Spatial特性
9.6导入OpenStreetMap数据
9.7大型OSM数据导入
9.7.1简易方法
9.7.2更直接的数据导入方法
9.8查询卫生间
9.9理解WKT和BBOX
9.10删除所有地理数据
9.11小结
第10章 安全认证
10.1认证与授权
10.2角色
10.3用户管理
10.4 Neo4j连接到LDAP目录
10.5使用LDAP配置Neo4j
10.6问答
10.7小结
第11章 Neo4j可视化
11.1可视化的重要作用
11.1.1为什么图数据可视化很重要
11.1.2直观地与数据进行交互
11.1.3模式识别
11.1.4发现重点
11.2图数据可视化的基本原则
11.2.1开源可视化组件库
11.2.2将可视化组件库应用到项目中
11.2.3可视化解决方案
11.2.4问题和陷阱
11.2.5 Cytoscape实例
11.3问答
11.4小结
第12章 Neo4j数据重构
12.1预备步骤
12.2简单改变
12.2.1重命名
12.2.2添加数据
12.2.3删除数据
12.3重大改变
12.3.1知道我们的模型
12.3.2重构工具
12.3.3属性变标签
12.3.4属性变节点
12.3.5相关节点变标签
12.3.6合并节点
12.3.7关系
12.4结论
12.5小结
第13章 集群
13.1为什么需要Neo4j集群
13.2 Neo4j集群的概念
13.2.1核心服务器
13.2.2只读副本服务器
13.2.3高吞吐量
13.2.4数据冗余
13.2.5高可用
13.2.6 Bolt协议
13.3构建Neo4j集群
13.3.1核心服务器
13.3.2只读副本服务器
13.3.3 bolt+routing协议
13.4在Neo4j集群中实现灾难恢复
13.5小结
第14章 案例——推荐系统
14.1推荐系统剖析
14.2推荐系统的图模型应用
14.3推荐系统查询示例
14.3.1基于商品购买的推荐
14.3.2基于品牌忠诚度的推荐
14.3.3基于社交关系的推荐
14.3.4组合推荐
14.4推荐系统的业务变化
14.5欺诈检测系统
14.6访问控制系统
14.7社交网络系统
14.8问答
14.9小结
第15章 案例——影响分析与模拟
15.1影响分析系统解析
15.1.1影响分析在业务流程管理中的应用
15.1.2业务图建模
15.2成本计算环境中的影响模拟
15.2.1产品层次结构的图建模
15.2.2产品层次结构图的应用
15.3问答
15.4小结
附录 应用技巧介绍