了解图数据库neo4j(二)

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情

目录

前言

上一篇中我们使用neo4j已经初步建立了人物标签跟关系属性,但是想要建立一个知识图谱集肯定一个标签是不够的,我们还需要与它相关的标签建立节点之间的关系,这一篇文我们将人物标签与其他标签进行关联组合他们之间的关系

创建标签

建立地点标签

创建几个城市标签跟邮编

CREATE (n:Location {city:'北京', post_code:'100000'});
CREATE (n:Location {city:'成都', post_code:'610000'});
CREATE (n:Location {city:'重庆', post_code:'400000'});
CREATE (n:Location {city:'石家庄', post_code:'050000'});
CREATE (n:Location {city:'深圳', post_code:'518000'});
复制代码

创建好后看一下效果 在这里插入图片描述 我们的地区节点已经都有了,但是有点杂乱无章,那就将他们归集一下,先把国家跟地级市的所属省也创建出来,国家跟省没邮编的使用首都跟盛会邮编

CREATE (n:Location {city:'中国', post_code:'100000'});
CREATE (n:Location {city:'四川省', post_code:'610000'});
CREATE (n:Location {city:'河北省', post_code:'050000'});
CREATE (n:Location {city:'广东省', post_code:'510000'});
复制代码

看看效果:

在这里插入图片描述 我们的地区节点又多了一些,现在开始安排他们之间的关系,我们的国家肯定是最大的,省跟直辖市指向国家,城市指向省会

MATCH (a:Location {city:'北京'}), (b:Location {city:'中国'}) MERGE (a)-[:SUPERIOR]->(b);
MATCH (a:Location {city:'重庆'}), (b:Location {city:'中国'}) MERGE (a)-[:SUPERIOR]->(b);
MATCH (a:Location {city:'四川省'}), (b:Location {city:'中国'}) MERGE (a)-[:SUPERIOR]->(b);
MATCH (a:Location {city:'河北省'}), (b:Location {city:'中国'}) MERGE (a)-[:SUPERIOR]->(b);
MATCH (a:Location {city:'广东省'}), (b:Location {city:'中国'}) MERGE (a)-[:SUPERIOR]->(b);
复制代码

执行后看一下效果

在这里插入图片描述

上面的图片看到省跟直辖市单位的上级关系已经指向了我们中国节点,接下来将地级市关联到省的节点上

MATCH (a:Location {city:'深圳'}), (b:Location {city:'广东省'}) MERGE (a)-[:SUPERIOR]->(b);
MATCH (a:Location {city:'石家庄'}), (b:Location {city:'河北省'}) MERGE (a)-[:SUPERIOR]->(b);
MATCH (a:Location {city:'成都'}), (b:Location {city:'四川省'}) MERGE (a)-[:SUPERIOR]->(b);
复制代码

看看地区的图谱维护的如何 在这里插入图片描述 从图上看到地区的标签关系已经都维护上了,但是人物跟地区之前还没有关系,我们将它们也建立上,这次在建立属性上可以加上时间标签,代表这个人什么时候在这个城市,这时候我们的傲天哥就要出场了,维护傲天哥跟地区的关系

MATCH (a:Person {name:'龙傲天'}), 
      (b:Location {city:'石家庄'}) 
MERGE (a)-[:ARRIVE {since:'2022-06-04'}]->(b)
复制代码

上面的命令的意思就是,傲天哥从2022年6月4号到达了石家庄开始了它的闯荡生涯 在这里插入图片描述 这样我们的傲天哥就有了第一站的地点,其他小弟也跟着傲天哥进行落地

MATCH (a:Person {name:'龙小弟'}), (b:Location {city:'石家庄'}) MERGE (a)-[:ARRIVE {since:'2022-06-04'}]->(b);
MATCH (a:Person {name:'龙二弟'}), (b:Location {city:'石家庄'}) MERGE (a)-[:ARRIVE {since:'2022-06-04'}]->(b);
MATCH (a:Person {name:'龙三弟'}), (b:Location {city:'石家庄'}) MERGE (a)-[:ARRIVE {since:'2022-06-04'}]->(b);
MATCH (a:Person {name:'龙四弟'}), (b:Location {city:'石家庄'}) MERGE (a)-[:ARRIVE {since:'2022-06-04'}]->(b);
MATCH (a:Person {name:'龙五弟'}), (b:Location {city:'石家庄'}) MERGE (a)-[:ARRIVE {since:'2022-06-04'}]->(b);
MATCH (a:Person {name:'龙六弟'}), (b:Location {city:'石家庄'}) MERGE (a)-[:ARRIVE {since:'2022-06-04'}]->(b);
复制代码

这样人物跟地点的关系就初步维护好了 在这里插入图片描述

猜你喜欢

转载自juejin.im/post/7105411723623923725