第1章 Neo4j概述 1
1.1 Neo4j数据的特点 2
1.2 Neo4j数据的表现形式 2
1.3 Neo4j的优势 5
1.3.1 查询的高性能 5
1.3.2 设计的灵活性 6
1.3.3 开发的敏捷性 6
1.3.4 与其他数据库的比较 6
1.3.5 综合表现 7
1.4 哪些领域更适合使用Neo4j 8
1.4.1 社区网络 8
1.4.2 推荐引擎 9
1.4.3 交通运输 9
1.4.4 物流管理 9
1.4.5 主数据管理 10
1.4.6 访问控制 10
1.4.7 欺诈检测 10
1.5 哪些领域不适合使用Neo4j 10
1.6 哪些企业在使用Neo4j 11
1.6.1 阿迪达斯的购物网站 12
1.6.2 沃尔玛的内部管理系统 12
1.6.3 eBay的电子商务 13
1.7 丰富的学习资源 13
1.7.1 精选的GraphGists 13
1.7.2 GraphGists门户 15
1.8 小结 16
第2章 Neo4j API应用 18
2.1 创建项目工程 18
2.1.1 项目工程配置 19
2.1.2 引用Neo4j开发包 19
2.2 使用Neo4j API 20
2.2.1 使用嵌入式数据库 20
2.2.2 创建节点和关系 21
2.2.3 查询及更新 22
2.2.4 删除关系和节点 23
2.3 使用标签 25
2.4 使用索引 26
2.4.1 手动索引 26
2.4.2 模式索引 27
2.4.3 模式约束 28
2.5 图的遍历 31
2.5.1 广度优先遍历 32
2.5.2 深度优先遍历 32
2.5.3 遍历的路径 34
2.6 使用Cypher查询语言 37
2.7 连接Neo4j服务器 40
2.8 关于事务 42
2.8.1 Neo4j支持完整的事务管理特性 42
2.8.2 交互周期 43
2.8.3 隔离级别 44
2.8.4 关于死锁 44
2.9 其他开发语言实例 44
2.9.1 Node.js访问Neo4j 45
2.9.2 Python访问Neo4j 46
2.10 小结 47
第3章 Neo4j的安装及使用 48
3.1 安装要求及推荐 48
3.2 安装Neo4j服务器 49
3.2.1 下载Neo4j 49
3.2.2 在Linux操作系统中安装Neo4j 50
3.2.3 在Windows操作系统中安装Neo4j 51
3.3 Neo4j基本配置 52
3.4 Neo4j配置优化 53
3.4.1 页面高速缓存 53
3.4.2 堆大小 54
3.4.3 垃圾收集器 54
3.5 使用Neo4j的Web控制台 55
3.5.1 使用命令行输入框 56
3.5.2 数据库管理信息 57
3.5.3 使用收藏夹 59
3.5.4 使用帮助手册 63
3.5.5 使用浏览器同步功能 65
3.5.6 使用浏览器设置 67
3.5.7 关于Neo4j 68
3.6 小结 69
第4章 Cypher查询语言简介 71
4.1 Cypher语法基础 71
4.1.1 变量定义 72
4.1.2 可用运算符 72
4.2 Cypher读/写查询结构 73
4.2.1 用CREATE创建节点 74
4.2.2 用CREATE创建关系 74
4.2.3 用MERGE创建节点 75
4.2.4 用MERGE创建关系 76
4.2.5 用SET更新数据 76
4.2.6 用DELETE删除数据 77
4.2.7 用REMOVE移除数据 78
4.2.8 使用循环FOREACH 79
4.3 使用索引 79
4.3.1 创建和使用索引 80
4.3.2 删除索引 81
4.4 使用约束 81
4.4.1 创建约束 81
4.4.2 删除约束 81
4.5 使用标签 82
4.6 Cypher只读查询结构 83
4.6.1 条件过滤WHERE 83
4.6.2 联合查询UNION 84
4.6.3 使用链接WITH 84
4.6.4 返回结果RETURN 85
4.7 使用CASE子句 86
4.8 遍历的路径 86
4.8.1 最短路径 87
4.8.2 所有最短路径 88
4.9 使用函数 90
4.10 使用CALL调用存储过程 92
4.11 查询语句性能分析 93
4.12 Cypher的使用范围 95
4.12.1 在neo4j-shell中使用Cypher查询语言 96
4.12.2 在Rest API中使用Cypher查询语言 98
4.13 小结 101
第5章 使用SDN建模和设计存储库接口 103
5.1 SDN简介 103
5.1.1 SDN的特点 103
5.1.2 SDN存储库接口 104
5.2 数据模型设计 105
5.2.1 用户访问控制数据模型 105
5.2.2 购物网站数据模型 106
5.3 数据建模的误区 108
5.4 Neo4j的数据类型 109
5.5 在项目中使用SDN 110
5.5.1 在项目工程中引用SDN依赖 110
5.5.2 建模中可用的OGM注解 111
5.5.3 日期类型转换实例 112
5.6 使用SDN建模 113
5.6.1 节点建模 113
5.6.2 关系建模 116
5.7 使用SDN设计存储库接口 118
5.7.1 创建存储库接口 118
5.7.2 在标准方法中使用路径 120
5.7.3 自定义声明方法 120
5.7.4 使用底层方法 122
5.8 SDN配置 124
5.8.1 配置域对象和存储库接口 125
5.8.2 使用SDN驱动连接数据库 125
5.9 小结 127
第6章 应用实例一:NBA季后赛预测 128
6.1 应用背景分析 129
6.1.1 胜负预测的依据 129
6.1.2 NBA季后赛数据模型 129
6.2 实体对象建模 131
6.2.1 节点实体建模 131
6.2.2 关系实体建模 134
6.3 实体持久化和查询设计 135
6.3.1 东部球队存储库接口 136
6.3.2 西部球队存储库接口 137
6.3.3 比赛存储库接口 138
6.3.4 赢得关系存储库接口 139
6.4 预测算法设计 140
6.4.1 NBA季后赛的年度历史查询 141
6.4.2 一支球队的比赛历史查询 141
6.4.3 胜负比率排名算法 142
6.4.4 输赢预测算法 143
6.5 SDN配置及数据库连接 144
6.5.1 数据库连接配置 145
6.5.2 SDN配置 145
6.6 数据库设计验证 146
6.7 创建Web应用 149
6.8 Web前后端设计 150
6.8.1 Web后端设计 150
6.8.2 Web前端设计 154
6.9 比赛结果编辑设计 168
6.9.1 比赛结果编辑的访问控制设计 168
6.9.2 比赛结果的录入界面设计 171
6.10 胜率排名的Web设计 176
6.10.1 胜率排名的访问控制设计 176
6.10.2 胜率排名的界面设计 177
6.11 输赢预测的Web设计 180
6.11.1 输赢预测的访问控制设计 181
6.11.2 输赢预测的界面设计 182
6.12 使用GraphGists的测试数据 187
6.13 实例工程使用 188
6.13.1 工程配置 189
6.13.2 运行应用 189
6.14 小结 191
第7章 应用实例二:电影社区推荐引擎 192
7.1 应用背景分析 192
7.1.1 发现商业价值 193
7.1.2 建立数据模型 193
7.2 数据对象建模 194
7.2.1 节点建模 194
7.2.2 关系建模 199
7.3 存储库接口设计 201
7.3.1 影院存储库接口设计 201
7.3.2 电影存储库接口设计 202
7.3.3 节目存储库接口设计 203
7.3.4 观众存储库接口设计 204
7.4 Cypher查询算法设计 204
7.4.1 电影排名查询算法设计 205
7.4.2 电影推荐查询算法设计 205
7.5 数据访问服务类设计 208
7.5.1 分页查询公共服务类 209
7.5.2 数据访问服务类 210
7.6 数据库连接配置 212
7.6.1 SDN驱动的依赖引用 212
7.6.2 连接数据库配置 213
7.6.3 SDN配置 213
7.7 数据库设计验证 214
7.8 Web设计 217
7.8.1 访问控制设计 218
7.8.2 界面设计 222
7.9 电影评分的Web设计 242
7.9.1 电影评分访问控制设计 242
7.9.2 电影评分界面设计 244
7.10 电影排名的Web设计 247
7.10.1 电影排名访问控制设计 247
7.10.2 电影排名界面设计 248
7.11 电影推荐的Web设计 252
7.11.1 推荐电影给观众的Web设计 252
7.11.2 推荐电影给朋友的Web设计 257
7.12 管理后台的导航栏设计 258
7.13 实例工程使用 260
7.13.1 运行配置 260
7.13.2 应用发布 261
7.14 小结 262
第8章 Neo4j企业版安装及使用 263
8.1 分布式服务器安装 264
8.1.1 在不同机器上安装分布式服务器 264
8.1.2 在同一台机器上安装分布式服务器 272
8.2 使用Haproxy实施负载均衡服务 275
8.2.1 普通负载均衡配置 275
8.2.2 Haproxy服务监控 279
8.3 实现读/写分离的负载均衡服务 280
8.4 小结 284
第9章 Neo4j的数据安全及备份 286
9.1 数据的备份与恢复 286
9.1.1 数据备份 286
9.1.2 清理备份日志 288
9.1.3 数据恢复 289
9.2 数据库安全保障 290
9.3 数据的导入与导出 290
9.3.1 使用neo4j-import导入数据 291
9.3.2 使用Cypher导入数据 294
9.3.3 导出数据 295
9.4 故障恢复与事务日志 297
9.5 数据库升级 297
9.5.1 从2.x 升级到3.0.3 297
9.5.2 在3.x之间升级 299
9.6 小结 300
结束语 301
附录A 参考资料 302
· · · · · · (
收起)