知识图谱-neo4j入门

什么是知识图谱?

有人的地方就会有江湖

江湖不是打打杀杀

而是人情世故

人情世故就是各种关系嘛

人情世故通常都是文本数据

在海量数据中将各种各样的关系抽出来

那我,我们怎么存储这些关系

普通的数据库,当然不行了

因为不够直观嘛

所以我们就有了神器——neo4j

neo4j是一种图形化数据库,能让人很直观看出各实体之间的关系。

1、JDK环境配置

很多人电脑上本来就有jdk,但是很抱歉,neo4j很矫情,它对JDK版本有要求,所以最好卸载原有的JDk,安装最新版本的JDk。

JDK安装:https://www.oracle.com/java/technologies/javase-downloads.html

直接无脑下载后点下一步就ok了。


我的电脑,右键->属性->高级系统设置->环境变量


系统变量->新建

变量名:JAVA_HOME

变量值:C:\Program Files\Java\jdk1.8.0_152(以安装路径为主)


系统变量->新建

变量名:CLASSPATH

变量值: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; (注意符号,建议直接复制粘贴)


系统变量->编辑

找到Path选项:

变量名:Path

变量值:点击新建,将 %JAVA_HOME%\bin 填进去(注意符号,建议直接复制粘贴)
变量值:点击新建,将 %JAVA_HOME%\jre\bin 填进去(注意符号,建议直接复制粘贴)

至此完成配置。


按Win+R组合键打开“运行”,输入cmd进入dos界面,输入java -version

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aJHPGGve-1606009769277)

若出现这个图就表明成功啦!

2、neo4j环境配置

Neo4j安装:https://neo4j.com/download-center/

官网下载,然后无脑下一步安装


我的电脑,右键->属性->高级系统设置->环境变量


系统变量->新建

变量名:NEO4J_HOME

变量值: C:\neo4j-community-4.1.3


系统变量->编辑

找到Path选项:

变量名:Path

变量值:点击新建,将 %NEO4J_HOME%\bin 填进去

至此完成配置。


按Win+R组合键打开“运行”,输入cmd进入dos界面,输入neo4j

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sBhLkFWs-1606009769279)

若出现这个图就表明成功啦!

本人已与百度合作,若以上配置过程看不懂或者有问题,可尝试百度搜索“xxx安装配置教程”即可。

3.启动neo4j看看

按Win+R组合键打开“运行”,输入cmd进入dos界面,输入

neo4j.bat console

出现如下界面表示成功启动

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Oi44xEJ-1606009769279)

图中红方框就就是访问地址

打开浏览器输入:http://localhost:7474/

第一次登录的用户名密码都是neo4j,登录成功后可以修改密码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mtrAQ6ay-1606009769281)

请看上面这张图:点开1位置的小星星,然后点击下面的Movie Graph(这是neo4j自带的演示知识图谱),然后我们会看到3位置自动出现了一行指令,然后点击4位置的小三角板,我们会得到5位置的界面,然后我们可以点击6位置的翻页,下面的每一页都会介绍neo4j的Cypher Query Language语句。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EIXyfuEK-1606009769282)

将页面翻到第2页,点击1位置的任意地方,我们能看到2位置的方框内自动出现了一堆指令,然后点击3位置的小三角,我们可以得到下图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IeILjZV0-1606009769284)

来解释下这个图哈,这个图中有9个person标签,8个movie标签,8个acted_in关系和10个directed关系。比如Tom Hanks演了8个电影。

至此,演示例子都看完啦,我只演示了第2页的指令,其他页的指令会简单的把Cypher Query Language都做一遍介绍,可自行琢磨,想系统学习Cypher Query Language可以去w3cschool看neo4j教程。

3、Cypher Query Language简单操作

增:
增加一个节点
create(n:Person{name:'毛同学',age:5})

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bTmEzqb7-1606009769284)

解释一下:n相当于一个别名,Person是我们定义的标签名字,大括号里面是属性,这里我们创建了名字name和年龄age两个属性,值分别为‘毛同学’和5。

图中点击毛同学这个圆圈,可以看到左下角显示这个实体的id号和属性以及属性值。


带有关系属性
create (p:Person{name:"毛同学",age:"5"})-[:是一个{负债:10000}]->(n:Person{name:"穷人",age:"5"})

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6h4bbZFI-1606009769285)

解释一下:这个语句的前面和后面一部分其实就是创建实体的语句,主要是中间的,":"后面的代表这个关系的名称,大括号里面的表示这个关系的属性。

图中点击1位置的关系,我们可以看到2位置的关系属性。

这个图的意思就是说:毛同学是一个穷人!(负债10000)(这是个悲伤的故事)


删:
create (n:Person {name:'MWY',age:20})
match (n:Person{name:"MWY"}) delete n

解释一下:这两句话是先创建了一个结点又删除了一个结点。其中删除语句中的n代表一个别名,相当于一个返回值,意思是在Person标签中查找name为"MWY"的返回给n,后面"delete n"代表删除n(就是查到的结点)这个结点。(注意:要删除点,必须先删除关系,不然不能删除)


删除关系
match (p:Person{name:"毛同学",age:"5"})-[f:是一个]->(n:Person{name:"穷人",age:"5"}) delete f

解释一下:删除关系语句中的前面部分和后面部分应该都能懂了,中间这部分,是把f当成一个返回值,查找到"是一个"这个关系后返回给f,后面的"delete f"代表把这个关系删除了,当然也可以变成"delete p,f,n",这表示把两个结点和它们的关系都删掉了。


改:
加上标签:
match (t:Person) where id(t)=0 set t:好人 return t

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8UmkqRnT-1606009769285)

解释一下:首先match是查找的意思,t接收找到的id为0的结点,set表示增加的意思,意思是把id为0的标签为person的结点增加一个"好人"标签。

图中点击1位置的关系,我们可以看到2位置的标签变成了两个。

这个图的意思就是说:毛同学是一个人!且是个好人!(挺不好意思的)


改:
加上属性
match (a:好人) where id(a)=0  set a.颜值=200  return a

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6V2fKsAI-1606009769286)

解释一下:首先match是查找的意思,a接收找到的id为0的结点,set表示增加的意思,意思是把id为0的标签为"好人"的结点增加一个"颜值"属性,值为200。

这个图的意思就是说:同学是一个人!且是个好人!他的颜值为200(不接受反驳)


改:
修改属性
match (a:好人) where id(a)=0  set a.颜值=500  return a

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yItsZtZc-1606009769286)

解释一下:首先match是查找的意思,a接收找到的id为0的结点,set表示修改的意思,意思是把id为0的标签为"好人"的结点的"颜值"属性改为500。

这个图的意思就是说:毛同学是一个人!且是个好人!200都已经不能够表示他的颜值,500才能勉强表示(我有点飘)


如果你想清空数据库那么:

快速清空数据库:
MATCH (n)
DETACH DELETE n

解释一下:n,表示的是一个别名,后面一句表示清空n,也就是清空数据库。

这就是我们常说的“删库跑路”一句中的删库指令。(温馨提示:慎用)

若想交流,加qq:1518887260

整理于2020年10月28日

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值