Neo4j实战
2、图形数据结构建模
3、使用Neo4j API
创建节点
创建关系
为节点添加属性
节点类型策略
为关系添加属性
节点标签
4、强大的图形遍历
简单遍历:从起始节点开始按照关系使用Neo4j核心Java API查找直接的邻居
使用Neo4j核心Java API进行遍历
寻找起始节点
遍历直接关系
遍历深度为2的关系
内存使用注意事项
使用Neo4j的遍历API进行遍历
使用Neo4j的内置遍历结构
实现一个自定义评估函数
5、数据索引
Neo4j已经过优化以确保快速遍历图形,但是通过知道从哪里开始减少需要遍历的节点数是很重要的,随着数据集的增加,需要遍历的节点数也在增加。
Neo4j使用索引以确定在图形数据库中从哪里开始。在关系数据库中,一个索引提供了通过列的特定数值快速和容易地查找表中的行。同样,Neo4j的索引使得它通过特定的属性值容易地查找节点或关系。与关系数据库不同,Neo4j需要应用程序代码创建和维护索引项。
因为应用程序的代码负责索引,所以需要认真考虑索引策略。
创建索引项:
通过邮箱地址查找用户:
对多个匹配结果的处理:
对索引过的数据进行修改的处理:
自动索引:模式索引和自动索引
索引的成本/效益权衡:索引查询的性能优势、当更新和插入数据时索引对性能的影响、索引的存储。
第二部分 Neo4j应用开发
6、Neo4j的查询语言Cypher
Cypher简介:是对图形的声明查询语言,使用图形模式匹配作为主要的机制作图形数据选择(包括只读和变更操作)。Cypher的声明模式匹配性质意味着可以通过描述想从它那里得到什么查询图形数据。
Cypher的基本句法:
用Cypher更新图形数据:
高级Cypher:聚合、函数、with语句的管道功能、Cypher的兼容性。
7、事务
事务的基础知识:添加事务
事务的高级功能:事务的语义、永久性、隔离级别与Neo4j锁、事务中的读取与显示读锁
与其他事务管理系统的集成:
事务事件:
8、深度遍历
遍历的顺序:深度优先和广度优先
扩展关系:标准扩展器
管理唯一性:
双向遍历:
9、Spring Data Neo4j
SDN是一个对象-图形映射(OGM)框架,是为了简化开发者的工作而创建的,或者说是满足那些需要或想要用它与基于POJO域模型工作的开发者,在这种情况下,所有的数据都存储在Neo4j中。它的目的是通过处理所有底层工作和从Neo4j读域实体并写回去所必需的映射逻辑来提高效率。
第三部分 Neo4j应用实例
10、Neo4j的嵌入式模式与服务器模式
在着手任何的重要Neo4j项目之前,第一件需要考虑的事情是决定最终要以什么模式运行Neo4j。这一选择将影响到许多因素,譬如你的应用程序将用什么语言和在什么环境下运行,因此这是一项非常重要的考虑因素。
使用模式概述:当Neo4j第一次发布时,它的目标就是针对基于Java的领域,所以只是支持嵌入式模式。在嵌入式模式的设置中,你的Java应用程序和全新闪亮的Neo4j数据库很友好地绑在一起作为单一的应用实体,共同去征服基于图形问题的新领域。然而,Neo4j的广泛能力和功能并没有被其他的语言所忽视,这些功能也感兴趣于能够起到杠杆作用和充分利用这一全新的图形数据库。尽管Neo4j是用Java语言写成的,但其本质上是一个基于JVM的产品。这意味着理论上任何基于JVM的语言也能够使用Neo4j数据库。因此,由于不同的库和绑定开始涉及并成为可用,Neo4j的应用范围自然地开始扩展到其他基于JVM的语言。但是,以网络更友好的结构运行是必需的,引进服务器模式背后的主要驱动因素是对支持其他非基于JVM的客户的需求。在服务器模式下,Neo4j数据库以自己的进程运行,客户端通过它的专用基于HTTP的REST API与其对话。
11、Neo4j的架构与应用
高层Neo4j架构概述:
如何准备将Neo4j应用于实践中
如何扩展与配置Neo4j使其高可用
如何备份与恢复Neo4j数据库