前 言
本书内容基于Neo4j 3.x版本,通过对本书的学习我们会掌握图数据库和Neo4j的关键技能。从理论知识到应用程序开发,我们将全方面地学到Neo4j的各项知识。
本书所涵盖的内容
第1章 图论和数据库,解释图数据库技术的历史和基本理论。另外,本章阐述图数据库不断的发展、演变,以及图数据库从技术、行业方面与其他数据库技术进行比较。
第2章 Neo4j基础入门,介绍图数据库Neo4j的具体实现,并着重介绍Neo4j的关键概念和特性。
第3章 Neo4j数据模型,阐述图数据库的基本建模技术。
第4章 Cypher入门,阐述Cypher查询语言的用法。
第5章 过程——APOC,在本章我们将学习如何在Cypher查询中使用过程、获取过程的相关信息以及社区版提供的数百个存储过程的概述。
第6章 Cypher扩展,阐述如何扩展Neo4j实例的功能、如何创建用户自定义APOC。
第7章 查询性能优化,阐述如何调整我们的Cypher查询以获得更好的性能。
第8章 Neo4j数据导入,阐述如何从不同数据源将数据导入到Neo4j。
第9章 空间,阐述如何使用Neo4j的地理信息功能。
第10章 安全认证,阐述Neo4j中的认证和授权。
第11章 Neo4j可视化,阐述如何展示我们的数据。
第12章 Neo4j数据重构,阐述如何按照需求来修改适合我们的数据模型。
第13章 集群,使用Neo4j企业版建立一个因果集群。
第14章 案例——推荐系统,深入挖掘特定的图数据库用例,并使用特定的示例数据集和查询模式进行剖析。
第15章 案例——影响分析与模拟,分析网络中某一部分的变化对另外一部分的影响。
附录 应用技巧介绍,阐述使用Neo4j的一些技巧。
学习本书需要具备的条件
要运行Neo4j的软件,我们需要一个装有Java7或更高版本的计算机,并且要具备4GB的内存和2GB的可用硬盘空间。
本书有一些在GNU / Linux系统运行的例子,所以某些内容会用到Linux操作系统。
除了第10章安全认证和第13章集群之外,大多数章节讨论的内容都适用于Neo4j社区版和Neo4j企业版。
在最后几章内容中,我们推荐使用两台笔记本电脑,几个树莓派设备和Docker容器来做实验。
本书适用人群
本书内容适用于想要采用图作为数据存储结构或者想要处理复杂网状关系数据的开发人员。只要我们有传统数据库的使用经验,即便没有图数据库的相关经验我们也是可以很容易地理解本书内容。
本书内容格式的约定
代码块样式如下:
public class StringHacking {
@UserFunction
@Description("Returns the last word of a string")
public String getLastWord( @Name("aStr") String aStr){
if(aStr==null) return null;
else {
int pos = aStr.lastIndexOf(" ");
if(pos==-1) return aStr;
else return aStr.substring(pos+1);
}
}
}
当本书想要让读者着重注意代码中某一部分时,将会加粗显示:
MATCH (ln:LastName)--(p:Person)
RETURN ln, learningneo4j.randomCount(p.lastName) AS badcount
命令行的输入、输出内容格式如下:
mkdir data/ldap/environment -p
mkdir data/ldap/db -p
新术语和重要词汇以及操作界面上的词汇(如菜单、对话框的名字)本书将以粗体显示,如下所示:
为了下载新模块,我们打开“文件|设置|项目名称|项目解释器”。
重要提醒的内容将以此形式展示。
技巧性的内容将以此形式展示。
反馈
我们欢迎读者反馈对本书的看法,任何你喜欢或不喜欢的内容都可以反馈给我们。读者的反馈对我们是非常重要的,从读者的反馈中我们可以知道如何修改、完善本书的内容。如果要向我们反馈关于本书的普通问题请发送电子邮件至feedback@packtpub.com,并在邮件主题中写明章节标题;如果你是一位专业人士并希望参与到本书的撰写中,请参阅我们的作者指南,网址为www.packtpub.com/authors。
读者支持
既然你是这本书的拥有者,我们自然愿意从多方面帮助你从购买中获得最大收益。
下载本书示例代码
如果你是从http://www.packtpub.com上购买的本书,那么你可以直接在此网站下载本书的示例代码文件。如果你在其他地方购买了本书,则可以访问http://www.packtpub.com/support并注册,我们将直接将示例代码文件通过电子邮件发送给你。你可以通过以下步骤下载代码文件:
(1)使用你的电子邮件地址和密码登录或注册我们的网站。
(2)将鼠标指针悬停在顶部的SUPPORT选项卡上。
(3)点击Code Downloads&Errata。
(4)在搜索框中输入书名。
(5)选择你要下载代码的对应书名。
(6)打开购买本书的下拉菜单。
(7)点击代码下载。
示例代码文件是一个压缩包文件,当你下载下来后请使用最新版本的解压工具,如:
? WinRAR、7-Zip Windows版。
? Zipeg 、iZip、UnRarX Mac版。
? 7-Zip 、PeaZip Linux版。
从GitHub上也可以下载到本书的示例代码文件,GitHub地址为https://github.com/Packt
Publishing/Learning-Neo4j-3x-Second-Editon。我们还在https://github.com/PacktPublishing/上提供了丰富而有用的代码。
勘误表
尽管我们竭尽全力确保本书内容的正确,但疏漏在所难免,如果你在阅读本书的过程中发现了任何文字或代码错误,你可以将错误标记出来发给我们,这样能帮助我们改进本书的后续版本。你可以访问http://www.packtpub.com/submit-errata,然后选择你的图书,再点击勘误提交表格链接,并输入你的勘误详情。一旦你提交的勘误被确认,你提交的勘误将被上传到我们网站上进行公示。
如果要查看以前提交的勘误表,请访问https://www.packtpub.com/books/content/support并在搜索框中输入图书的名称。所需的信息将出现在页面的勘误部分。
版权
互联网上盗版问题是一直存在的,我们非常重视保护我们的版权。如果你在互联网上发现任何本书的非法复制作品,请立即向我们提供网址或网站名称,以便我们寻求补救措施。请通过copyright@packtpub.com与我们联系,并附上可疑的盗版材料的链接。我们非常感谢你的帮助,这将帮助我们作者保护自身利益不受侵犯。
其他问题
如果你对本书的任何方面有疑问,可以通过questions@packtpub.com与我们联系,我们将尽最大努力帮你解决问题。