内容简介
第一部分 Neo4j概述
第1章 Neo4j数据库的一个应用案例
1.1 为什么要有Neo4j
1.2 关系数据库中的图形数据
1.3 Neo4j中的图形数据
1.4 大数据下的SQL联接操作与Neo4j图形遍历的对比
1.5 图形
1.6 Neo4j在NoSQL领域的地位
1.6.1 主键值存储
1.6.2 列族存储
1.6.3 面向文档的数据库
1.6.4 图形数据库
1.6.5 与NoSQL类数据库的比较
1.7 Neo4j具有与ACID兼容的数据格式
1.8 本章小结
第2章 Neo4j的数据模型
2.1 Neo4j中数据模型的类型
2.1.1 图表建模的一个简单实例
2.1.2 图表建模的一个复杂实例
2.2 领域建模
2.3 更多实例
2.3.1 地铁车站实例
2.3.2 乐队成员实例
2.4 本章小结
第3章 Neo4j开发入门
3.1 图形数据结构建模
3.2 使用Neo4jAPI
3.2.1 创建节点
3.2.2 创建关系
3.2.3 为节点添加属性
3.2.4 节点类型策略
3.2.5 为关系添加属性
3.3 节点标签
3.4 本章小结
第4章 强大的图形遍历功能
4.1 使用Neo4j核心Java API进行遍历
4.1.1 寻找起始节点
4.1.2 遍历直接关系
4.1.3 遍历深度为2的关系
4.1.4 内存使用注意事项
4.2 使用Neo4j的遍历API进行遍历
4.2.1 使用Neo4j的内置遍历结构
4.2.2 实现一个自定义评估函数
4.3 本章小结
第5章 数据索引
5.1 创建索引项
5.2 通过邮箱地址查找用户
5.3 对多个匹配结果的处理
5.4 对索引过的数据进行修改的处理
5.5 自动索引
5.5.1 模式索引
5.5.2 自动索引
5.6 索引的成本/效益权衡
5.6.1 索引查询的性能优势
5.6.2 当更新和插入数据时索引对性能的影响
5.6.3 索引的存储
5.7 本章小结
第二部分 Neo4j应用开发
第6章 Neo4j的查询语言Cypher
6.1 Cypher简介
6.1.1 Cypher入门
6.1.2 执行Cypher查询
6.2 Cypher的基本句法
6.2.1 模式匹配
6.2.2 查找起始节点
6.2.3 过滤数据
6.2.4 获得结果
6.3 用Cypher更新图形数据
6.3.1 创建新图形实体
6.3.2 删除数据
6.3.3 更新节点和关系属性
6.4 高级Cypher
6.4.1 聚合
6.4.2 函数
6.4.3 with语句的管道功能
6.4.4 Cypher的兼容性
6.5 本章小结
第7章 事务
7.1 事务的基础知识
7.1.1 添加事务
7.1.2 打好基础,循序渐进
7.2 事务的高级功能
7.2.1 事务的语义
7.2.2 事务中的读取与显式读锁
7.2.3 事务中的写入与显式写锁
7.2.4 无效锁的危害
7.3 与其他事务管理系统的集成
7.4 事务事件
7.5 本章小结
第8章 深度遍历
8.1 遍历的顺序
8.1.1 深度优先
8.1.2 广度优先
8.1.3 深度优先与广度优先顺序的比较
8.2 扩展关系
8.2.1 标准扩展器
8.2.2 用于扩展的顺序关系
8.2.3 自定义扩展器
8.3 管理唯一性
8.3.1 NODE GLOBAL唯一性
8.3.2 NODE PATH唯一性
8.3.3 其他唯一性类型
8.4 双向遍历
8.5 本章小结
第9章 Spring Data Neo4j
9.1 SDN适合做什么
9.1.1 什么是Spring以及Spring与SDN是怎样关联的
9.1.2 SDN适合做什么(及不适合做什么)
9.1.3 从哪里获得SDN
9.1.4 从哪里获得更多的信息
9.2 用SDN建模
9.2.1 原始POJO域建模
9.2.2 注释域模型
9.2.3 建模节点实体
9.2.4 建模关系实体
9.2.5 建模节点实体之间的关系
9.3 访问和持久化实体
9.3.1 支持Spring的配置
9.3.2 Neo4jTemplate类
9.3.3 资源库
9.3.4 其他选项
9.4 对象图形映射选项
9.4.1 简单映射
9.4.2 基于AspectJ的高级映射
9.4.3 对象映射总结
9.5 执行查询和遍历
9.5.1 注释查询
9.5.2 动态派生查询
9.5.3 遍历
9.6 本章小结
第三部分 Neo4j应用实例
第10章 Neo4j的嵌入式模式与服务器模式
10.1 使用模式概述
10.2 嵌入式模式
10.2.1 核心Java集成
10.2.2 其他基于JVM的集成
10.3 服务器模式
10.3.1 Neo4j服务器概述
10.3.2 使用细粒度Neo4j服务器模式的REST API
10.3.3 使用Cypher Neo4j服务器模式REST API端点
10.3.4 使用远程客户端库帮助访问Neo4j服务器
10.3.5 服务器插件和非托管扩展
10.4 权衡选项
10.4.1 对架构的考虑
10.4.2 对性能的考虑
10.4.3 其他需要考虑的事项
10.5 充分利用服务器模式
10.5.1 避免细粒度操作
10.5.2 使用Cypher
10.5.3 服务器插件
10.5.4 非托管扩展
10.5.5 流REST API
10.6 本章小结
第11章 Neo4j的架构与应用
11.1 高层Neo4j架构
11.1.1 设置场景
11.1.2 硬盘
11.1.3 存储文件
11.1.4 Neo4j缓存
11.1.5 事务日志及可恢复性
11.1.6 编程API
11.2 Neo4j的高可用性
11.2.1 Neo4j集群概述
11.2.2 设置Neo4j集群
11.2.3 复制——读和写的策略
11.2.4 缓存分区
11.2.5 HA小结
11.3 备份
11.3.1 离线备份
11.3.2 在线备份
11.3.3 从备份中还原数据
11.4 本书可能没有涵盖但你可能会关注的问题
11.4.1 安全
11.4.2 监控
11.5 本章小结
11.6 最后的设想
附录A安装Neo4j服务器
附录B设置和运行示例程序
附录C设置使用SDN的项目环境
附录D获得更多的帮助