知识图谱neo4j入门教程

因为研究生需要学习知识图谱,在网上找了一些教程没有很合适的,所以在此记录所学方便以后查看。(会陆续更新,学到哪写到哪,先按照我自己的笔记写了,等有人看再整理顺序吧。)
PS:本人是个小白,写的比较通俗,并不标准,仅供参考。

知识图谱neo4j入门教程

这里是做一个比赛需要的小例子。
这个是例子
练手例子在这里插入图片描述

首先安装教程就不写了。链接如下:
https://blog.csdn.net/hxg117/article/details/79929579
我就是跟这个做的

neo4j的启动与关闭

1.打开cmd
2.cd切换到目录
cd F:\neo4j\neo4j-community-3.5.5-windows\neo4j-community-3.5.5\bin
3.输入以下指令

neo4j.bat console

4.neo4j 的关闭

neo4j stop

5.如果再启动可以输入

neo4j start

进行启动

切换数据库(非常有用,找了好多都没有这么好用的):

1.关闭当前neo4j进程
2.打开F:\neo4j\neo4j-community-3.5.5-windows\neo4j-community-3.5.5\conf下文件,把dbms.active_database=test.db中的test.db切换成需要的数据库,dbms.allow_upgrade=true打开。
3.重启neo4j即可。
注:数据在F:\neo4j\neo4j-community-3.5.5-windows\neo4j-community-3.5.5\data\databases文件夹下添加文件名.db的形式的文件夹 。(这个是我个人的目录)

//创建节点
CREATE (name:Name{dname:'陈碧莹',jibing1:'糖尿病',jibing4:'低血压',jibing5:'轻度近视'})
CREATE (name:Name{dname:'车安妮',jibing3:'高血压'})
CREATE (name:Name{dname:'陈柳',jibing1:'糖尿病',jibing5:'重度近视'})
CREATE (name:Name{dname:'陈佳佳',jibing1:'糖尿病',jibing4:'低血压'})
CREATE (name:Name{dname:'车野',jibing2:'先天性心脏病',jibing3:'高血压',jibing5:'轻度近视'})
CREATE (name:Name{dname:'陈世超',jibing5:'轻度近视'})
MATCH (name:Name) RETURN name.dname

//
在这里插入图片描述

MATCH (name:Name) RETURN name

//显示节点是name的两个节点

在这里插入图片描述

MATCH(e:Name) DELETE e   //删除节点

CREATE(name:Name7)-[Mother:Motherdaughter]->(name:Name8)
//在未创建结点创建关系
CREATE(name:Name1:Name2)

CREATE (CBY:Name1{dname:'陈碧莹',jibing1:'糖尿病',jibing4:'低血压',jibing5:'轻度近视'})
CREATE (DAN:Name2{dname:'车安妮',jibing3:'高血压'})
CREATE(CBY)-[mother:motherdaughter{r:'母女'}]->(DAN)

在这里插入图片描述

MATCH(a:Name1{dname:'陈碧莹'}) MATCH(b:TNB{bname:'糖尿病'}) CREATE(a)-[r:患有]->(b)  return r;
//创建两个已有结点之间的关系

在这里插入图片描述

CREATE(GXY:GXY{bname:'高血压',laber:'非遗传病'}),(DXY:DXY{bname:'低血压',laber:'非遗传病'}),(TNB:TNB{bname:'糖尿病',laber:'遗传病'})
CREATE(QJS:QJS{bname:'轻度近视',laber:'非遗传病'}),
CREATE(ZJS:ZJS{bname:'重度近视',laber:'遗传病'}),
CREATE(XZB:XZB{bname:'先天性心脏病',laber:'遗传病'});

MATCH(a:DXY) MATCH(Name1) CREATE(a)-[r:患有]->(b)  return r;
MATCH(a:DXY) DELETE a   //删掉结点
MATCH(:DXY) -[r:患有]->() delete r   //删点DXY关系为患有的结点

match (n) detach delete n
//清空数据库所有信息

CREATE(name:Name{dname:'陈碧莹',jibing1:'糖尿病',jibing4:'高血压',jibing5:'轻度近视'})-[:患有]-> (GXY:GXY{bname:'高血压',laber:'非遗传病'})
//创建两个新节点及其关系

match(a:Name{dname:'陈碧莹'})  match(b:QJS{bname:'轻度近视'}) MATCH (c:TNB{bname:'糖尿病'})      create(a)-[:患有]->(b),(a)-[:患有]->(c)
//建立一对多的关系

match(a:Name{dname:'陈碧莹'})  create(name:Name{dname:'车安妮',jibing3:'高血压'})   create(a)-[:母女]->(name)
//建立一个存在和一个新建关系的结点
match(a:Name{dname:'车安妮'})  match(b:GXY{bname:'高血压'}) create(a)-[:患有]->(b)

在这里插入图片描述

CREATE (name:Name{dname:'陈柳',jibing1:'糖尿病',jibing5:'重度近视'}) match(b:TNB{bname:'糖尿病'}) match(c:ZJS{bname:'重度近视'}) match (d:Name{dname:'陈碧莹'}) CREATE (name)-[:患有]->(b) CREATE(name)-[:患有]->(c) CREATE(name)-[:父女]->(d)

match(a:Name{dname:'陈佳佳'})  match(b:TNB{bname:'糖尿病'}) CREATE (a)-[:患有]->(b)

得糖尿病的人在这里插入图片描述

最后成果展示在这里插入图片描述

python 连接neo4j

首先需要安装这个包

import pandas as pd
from py2neo import Graph, Node, Relationship

这一行是你的数据库。默认的username是neo4j,密码是 第一次设置的

graph = Graph('http://localhost:7474', username='dianzisai', password='0507')
#创建新节点
a=Node('陈碧莹',name='陈碧莹')
graph.create(a)

创建完节点之后你就可以在neo4j查询一下。下面语句或者图中语句都可以。

match(a) return a;

在这里插入图片描述

# 创建新节点
a=Node('陈碧莹',name='陈碧莹')
#graph.create(a)
b=Node('车安妮',name='车安妮')
graph.create(b)
#创建关系
e1=Relationship(a, '母女', b)
graph.create(e1)
# 也可以一次性创建
s = a | b 
graph.create(s)

在这里插入图片描述

# 创建新节点
a=Node('陈碧莹',name='陈碧莹')
# graph.create(a)
# b=Node('车安妮',name='车安妮')
# graph.create(b)
#创建关系
# e1=Relationship(a, '母女', b)
# graph.create(e1)
c=Node('陈柳',name='陈柳')
e2=Relationship(a, '父女', c)
graph.create(e2)

写完这个之后,发现陈碧莹这个节点出现了两个。

在这里插入图片描述
这样可以加属性

a=Node('test',name='陈碧莹',jibing1='糖尿病',jibing2='高血压')
  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值