
哈喽大家好啊,我是Hydra。
虽然距离中秋放假还要熬过漫长的两天,不过也有个好消息,今天是《雷神4》上线Disney+流媒体的日子(也就是说我们稍后就可以网盘见了)~
了解北欧神话的小伙伴们应该知道,它的神话体系可以用一个字来形容,那就是『 乱 』!就像是雷神3中下面这张错综复杂的关系网,也只能算是其中的一支半节。

而我们在上一篇文章中,介绍了关于知识图谱的一些基本理论知识,俗话说的好,光说不练假把式,今天我们就来看看,如何在springboot项目中,实现并呈现这张雷神中复杂的人物关系图谱。
本文将通过下面几个主要模块,构建自然界中实体间的联系,实现知识图谱描述:
知识图谱的底层依赖于关键的图数据库,在这里我们选择Neo4j,它是一款高性能的 nosql 图形数据库,能够将结构化的数据存储在图而不是表中。
首先进行安装,打开官网下载Neo4j的安装包,下载免费的community社区版就可以,地址放在下面:
https://neo4j.com/download/other-releases/。
需要注意的是,neo4j 4.x以上的版本都需要依赖 jdk11环境,所以如果运行环境是jdk8的话,那么还是老老实实下载3.x版本就行,下载解压完成后,在bin目录下通过命令启动:
neo4j console
启动后在浏览器访问安装服务器的7474端口,就可以打开neo4j的控制台页面:

通过左侧的导航栏,我们依次可以查看存储的数据、一些基础查询的示例以及一些帮助说明。
而顶部带有$符号的输入框,可以用来输入neo4j特有的CQL查询语句并执行,具体的语法我们放在下面介绍。
就像我们平常使用关系型数据库中的SQL语句一样,neo4j中可以使用Cypher查询语言(CQL)进行图形数据库的查询,我们简单来看一下增删改查的用法。
在CQL中,可以通过CREATE命令去创建一个节点,创建不含有属性节点的语法如下:
CREATE (: )
在CREATE语句中,包含两个基础元素,节点名称node-name和标签名称lable-name。标签名称相当于关系型数据库中的表名,而节点名称则代指这一条数据。
以下面的CREATE语句为例,就相当于在Person这张表中创建一条没有属性的空数据。
CREATE (索尔:Person)
而创建包含属性的节点时,可以在标签名称后面追加一个描绘属性的json字符串:
CREATE (: { : , … : } )
用下面的语句创建一个包含属性的节点:
CREATE (洛基:Person {name:"洛基",title:"诡计之神"})
在创建完节点后,我们就可以使用MATCH匹配命令查询已存在的节点及属性的数据,命令的格式如下:
MATCH (: )
通常,MATCH命令在后面配合RETURN、DELETE等命令使用,执行具体的返回或删除等操作。
执行下面的命令:
MATCH (p:Person) RETURN p
查看可视化的显示结果: