Neo4j的使用-1

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangfengling1023/article/details/81875994

节点:表示一个实体记录,就像关系数据库当中一条记录,一个节点包含多个属性和标签

关系:关系用于将节点关联起来构成图,关系也称为图论的边

属性:节点和关系都可以有多个属性,属性是由键值对组成的,就像JAVA中的哈希

标签:标签指示一组拥有相同属性的节点,但不强制要求相同,一个节点可以有多个标签

路径:图中任意两个节点都存在由关系组成的路径,路径有长短之分

 

Cypher查询语言

Cypher是一种声明式图数据库查询语言,类似关系数据库当中的SQL,Cypher设计借鉴了其他如SQL、python语言惯用做法

MATCH:匹配图模式

WHERE:过滤条件

RETURN定义返回的结果

基本语法:

增(CREATE)

删(DELETE)

改(SET)

查(MATCH)

函数

With

例子:

最近《延禧攻略》比较火,以此为例,将剧中的部分任务进行简单的构建人物图谱

1、创建人物节点:

create(:yanxi_gonglve{name:"魏璎珞"})

运行之后的结果如下所示:

按照上述的方式,依次建立以下的节点:

create(:yanxi_gonglve{name:"乾隆"})

create(:yanxi_gonglve{name:"富察皇后"})

create(:yanxi_gonglve{name:"高贵妃"})

create(:yanxi_gonglve{name:"娴妃"}),(:yanxi_gonglve{name:"纯妃"})

create(:yanxi_gonglve{name:"傅恒"}),(:yanxi_gonglve{name:"海兰察"})

create(:yanxi_gonglve{name:"尔晴"}),(:yanxi_gonglve{name:"明玉"})

结果如下所示:

这样的一个一个的点之间是没有关系的,要想让这些点之间有联系,需要对两两之间的关系进行建立

2、创建人物之间的关系

match(a:yanxi_gonglve{name:"魏璎珞"})match(b:yanxi_gonglve{name:"乾隆"})create(a)-[r:令妃]->(b)

运行的结果如下所示:

按照上述的方式,人物之间所存在的关系进行建立:

match(a:yanxi_gonglve{name:"魏璎珞"})match(b:yanxi_gonglve{name:"富察皇后"})create(a)-[r:主仆]->(b)

match(a:yanxi_gonglve{name:"魏璎珞"})match(b:yanxi_gonglve{name:"尔晴"})create(a)-[r:生恨]->(b)

match(a:yanxi_gonglve{name:"娴妃"})match(b:yanxi_gonglve{name:"魏璎珞"})create(a)-[r:暗算]->(b)

match(a:yanxi_gonglve{name:"娴妃"})match(b:yanxi_gonglve{name:"乾隆"})create(a)-[r:娴妃]->(b)

match(a:yanxi_gonglve{name:"娴妃"})match(b:yanxi_gonglve{name:"纯妃"})create(a)-[r:利用]->(b)

match(a:yanxi_gonglve{name:"纯妃"})match(b:yanxi_gonglve{name:"魏璎珞"})create (a)-[r:生恨]->(b)

match(a:yanxi_gonglve{name:"纯妃"})match(b:yanxi_gonglve{name:"傅恒"})create (a)-[r:喜欢]->(b)

match(a:yanxi_gonglve{name:"海兰察"})match(b:yanxi_gonglve{name:"傅恒"})create (a)-[r:同侍卫]->(b)

match(a:yanxi_gonglve{name:"尔晴"})match(b:yanxi_gonglve{name:"傅恒"})create (a)-[r:嫁入]->(b)

match(a:yanxi_gonglve{name:"富察皇后"})match(b:yanxi_gonglve{name:"傅恒"})create (b)-[r:姐姐]->(a)

match(a:yanxi_gonglve{name:"富察皇后"})match(b:yanxi_gonglve{name:"明玉"})create (a)-[r:宫女]->(b)

match(a:yanxi_gonglve{name:"富察皇后"})match(b:yanxi_gonglve{name:"尔晴"})create (a)-[r:大宫女]->(b)

match(a:yanxi_gonglve{name:"傅恒"})match(b:yanxi_gonglve{name:"魏璎珞"})create (a)-[r:喜欢]->(b)

match(a:yanxi_gonglve{name:"高贵妃"})match(b:yanxi_gonglve{name:"富察皇后"})create (a)-[r:暗算]->(b)

match(a:yanxi_gonglve{name:"高贵妃"})match(b:yanxi_gonglve{name:"乾隆"})create (a)-[r:贵妃]->(b)

match(a:yanxi_gonglve{name:"乾隆"})match(b:yanxi_gonglve{name:"富察皇后"})create (a)-[r:皇后]->(b)

match(a:yanxi_gonglve{name:"乾隆"})match(b:yanxi_gonglve{name:"富察皇后"})create (a)-[r:皇后]->(b)

结果如下所示:

在工具的左侧部分会增加一些“关系”,具体如下图所示:

涉及到的Cyper查询语言如下所示:

若在有关系的节点上只删除节点则会报错,因此在删除节点的时候,将节点上的所有关系也进行删除

 

后续会继续更细有关于知识图谱的内容,有同道者,可以互相交流哦

猜你喜欢

转载自blog.csdn.net/yangfengling1023/article/details/81875994