扫描右侧图片或微信搜索 “ Java技术分享屋 ” ,回复 “ 验证码 ” ,获取验证密码。
本资料仅供读者预览及学习交流使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!
一.资料图片
二.资料简介
本书以实例为依托,详细地对实例做建模分析,并给出经过测试的源代码,读者可以按照书的介绍一步一步地实现每一个实例,这是一种学习建模和编程的极为便捷的方法。本书也是一本对使用Neo4j对图形数据进行设计、建模和查询的综合指导书。书中探索了处理和查询图形数据的各种工具及其强大功能,包括图形遍历的概念及其使用方法,也讨论了Neo4j的图形查询语言Cypher和如何使用SpringDataNeo4j将Neo4j集成到应用程序中,以及如何使用服务器模式和嵌入式模式等内容。
三.作者简介
About the AuthorAleksa Vukotic,之前在Open Credo担任数据管理实践领导者,现任Noble Group的开发平台部主管。他是一个软件架构师和开发者、敏捷编程的倡导者、作者和培训师,并且是许多Neo4j项目的开发者,如用图形数据模型解决复杂的访问控制列表和推荐引擎问题。
Nicki Watt,是Open Credo的顾问。她务实、心灵手巧,是一个问题解决专家,乐于使用“正确的工具完成工作”。Nicki一直使用Neo4j等开源工具以及框架参与各种项目,包括对基于引擎问题的探究和推荐。她也是Spring Data Neo4j项目的贡献者之一。
Tareq Abedrabbo,是Open Credo的技术官(CTO)。他对编程语言有着强烈的兴趣,从Scala和Python到Google Go。他在几个NoSQL技术领域(包括Neo4j、MongoDB和Redis)有着非常丰富的知识,并在很早以前就开始积极从事Spring项目,是Spring Web Service项目的核心成员。
Dominic Fox,是Open Credo的顾问,尤其喜欢把对编程语言理论的见解进行实践并讲解给他人。他作为专业开发者涉足了多种领域的工作,包括文档管理、电信和金融,也包括Neo4j的培训。他一直期望创建优秀的工具和库,能使每天的编程工作更加直观、可靠。
Jonas Partner,是Open Credo的执行官(CEO),该公司是Neo Technology的服务合作伙伴,是解决复杂数据问题的专业公司。他还是《Spring Integration in Action》的合作作者。
四.资料目录
译者序
序 言
前 言
作者简介
第一部分 Neo4j概述
第1章 Neo4j数据库的一个应用案例 3
1.1 为什么要有Neo4j 4
1.2 关系数据库中的图形数据 4
1.3 Neo4j中的图形数据 8
1.4 大数据下的SQL联接操作与Neo4j图形遍历的对比 10
1.5 图形 13
1.6 Neo4j在NoSQL领域的地位 13
1.6.1 主键值存储 14
1.6.2 列族存储 14
1.6.3 面向文档的数据库 15
1.6.4 图形数据库 15
1.6.5 与NoSQL类数据库的比较 15
1.7 Neo4j具有与ACID兼容的数据格式 16
1.8 本章小结 17
第2章 Neo4j的数据模型 18
2.1 Neo4j中数据模型的类型 18
2.1.1 图表建模的一个简单实例 19
2.1.2 图表建模的一个复杂实例 20
2.2 领域建模 22
2.3 更多实例 26
2.3.1 地铁车站实例 26
2.3.2 乐队成员实例 27
2.4 本章小结 29
第3章 Neo4j开发入门 30
3.1 图形数据结构建模 30
3.2 使用Neo4j API 34
3.2.1 创建节点 34
3.2.2 创建关系 36
3.2.3 为节点添加属性 38
3.2.4 节点类型策略 40
3.2.5 为关系添加属性 41
3.3 节点标签 43
3.4 本章小结 46
第4章 强大的图形遍历功能 47
4.1 使用Neo4j核心Java API进行遍历 47
4.1.1 寻找起始节点 48
4.1.2 遍历直接关系 49
4.1.3 遍历深度为2的关系 51
4.1.4 内存使用注意事项 53
4.2 使用Neo4j的遍历API进行遍历 55
4.2.1 使用Neo4j的内置遍历结构 55
4.2.2 实现一个自定义评估函数 56
4.3 本章小结 59
第5章 数据索引 60
5.1 创建索引项 60
5.2 通过邮箱地址查找用户 62
5.3 对多个匹配结果的处理 64
5.4 对索引过的数据进行修改的处理 65
5.5 自动索引 66
5.5.1 模式索引 66
5.5.2 自动索引 69
5.6 索引的成本/效益权衡 70
5.6.1 索引查询的性能优势 71
5.6.2 当更新和插入数据时索引对性能的影响 72
5.6.3 索引的存储 73
5.7 本章小结 73
第二部分 Neo4j应用开发
第6章 Neo4j的查询语言Cypher 77
6.1 Cypher简介 77
6.1.1 Cypher入门 78
6.1.2 执行Cypher查询 79
6.2 Cypher的基本句法 85
6.2.1 模式匹配 85
6.2.2 查找起始节点 89
6.2.3 过滤数据 92
6.2.4 获得结果 93
6.3 用Cypher更新图形数据 96
6.3.1 创建新图形实体 97
6.3.2 删除数据 99
6.3.3 更新节点和关系属性 99
6.4 高级Cypher 100
6.4.1 聚合 100
6.4.2 函数 101
6.4.3 with语句的管道功能 103
6.4.4 Cypher的兼容性 104
6.5 本章小结 104
第7章 事务 105
7.1 事务的基础知识 105
7.1.1 添加事务 107
7.1.2 打好基础,循序渐进 108
7.2 事务的高级功能 109
7.2.1 事务的语义 109
7.2.2 事务中的读取与显式读锁 111
7.2.3 事务中的写入与显式写锁 112
7.2.4 无效锁的危害 114
7.3 与其他事务管理系统的集成 114
7.4 事务事件 116
7.5 本章小结 117
第8章 深度遍历 118
8.1 遍历的顺序 118
8.1.1 深度优先 119
8.1.2 广度优先 121
8.1.3 深度优先与广度优先顺序的比较 122
8.2 扩展关系 124
8.2.1 标准扩展器 124
8.2.2 用于扩展的顺序关系 126
8.2.3 自定义扩展器 127
8.3 管理唯一性 130
8.3.1 NODE_GLOBAL唯一性 130
8.3.2 NODE_PATH唯一性 132
8.3.3 其他唯一性类型 133
8.4 双向遍历 134
8.5 本章小结 137
第9章 Spring Data Neo4j 138
9.1 SDN适合做什么 138
9.1.1 什么是Spring以及Spring与SDN是怎样关联的 140
9.1.2 SDN适合做什么(及不适合做什么) 140
9.1.3 从哪里获得SDN 141
9.1.4 从哪里获得更多的信息 141
9.2 用SDN建模 141
9.2.1 原始POJO域建模 142
9.2.2 注释域模型 144
9.2.3 建模节点实体 145
9.2.4 建模关系实体 148
9.2.5 建模节点实体之间的关系 150
9.3 访问和持久化实体 152
9.3.1 支持Spring的配置 152
9.3.2 Neo4jTemplate类 153
9.3.3 资源库 154
9.3.4 其他选项 157
9.4 对象图形映射选项 158
9.4.1 简单映射 158
9.4.2 基于AspectJ的高级映射 161
9.4.3 对象映射总结 164
9.5 执行查询和遍历 164
9.5.1 注释查询 164
9.5.2 动态派生查询 166
9.5.3 遍历 168
9.6 本章小结 168
第三部分 Neo4j应用实例
第10章 Neo4j的嵌入式模式与服务器模式 171
10.1 使用模式概述 171
10.2 嵌入式模式 173
10.2.1 核心Java集成 173
10.2.2 其他基于JVM的集成 176
10.3 服务器模式 177
10.3.1 Neo4j服务器概述 178
10.3.2 使用细粒度Neo4j服务器模式的REST API 179
10.3.3 使用Cypher Neo4j服务器模式REST API端点 181
10.3.4 使用远程客户端库帮助访问Neo4j服务器 182
10.3.5 服务器插件和非托管扩展 184
10.4 权衡选项 184
10.4.1 对架构的考虑 185
10.4.2 对性能的考虑 187
10.4.3 其他需要考虑的事项 190
10.5 充分利用服务器模式 190
10.5.1 避免细粒度操作 191
10.5.2 使用Cypher 192
10.5.3 服务器插件 194
10.5.4 非托管扩展 196
10.5.5 流REST API 198
10.6 本章小结 199
第11章 Neo4j的架构与应用 200
11.1 高层Neo4j架构 200
11.1.1 设置场景 202
11.1.2 硬盘 202
11.1.3 存储文件 203
11.1.4 Neo4j缓存 205
11.1.5 事务日志及可恢复性 210
11.1.6 编程API 211
11.2 Neo4j的高可用性 212
11.2.1 Neo4j集群概述 213
11.2.2 设置Neo4j集群 216
11.2.3 复制——读和写的策略 218
11.2.4 缓存分区 222
11.2.5 HA小结 224
11.3 备份 225
11.3.1 离线备份 225
11.3.2 在线备份 227
11.3.3 从备份中还原数据 229
11.4 本书可能没有涵盖但你可能会关注的问题 229
11.4.1 安全 229
11.4.2 监控 229
11.5 本章小结 230
11.6 最后的设想 230
附录A 安装Neo4j服务器 231
附录B 设置和运行示例程序 236
附录C 设置使用SDN的项目环境 241
附录D 获得更多的帮助 247