Neo4j的使用-1
节点:表示一个实体记录,就像关系数据库当中一条记录,一个节点包含多个属性和标签
关系:关系用于将节点关联起来构成图,关系也称为图论的边
属性:节点和关系都可以有多个属性,属性是由键值对组成的,就像JAVA中的哈希
标签:标签指示一组拥有相同属性的节点,但不强制要求相同,一个节点可以有多个标签
路径:图中任意两个节点都存在由关系组成的路径,路径有长短之分
Cypher查询语言
Cypher是一种声明式图数据库查询语言,类似关系数据库当中的SQL,Cypher设计借鉴了其他如SQL、python语言惯用做法,Neo4j使用Cypher查询图形数据,Cypher是描述性的图形查询语言,语法简单功能强大
START:在图中的开始点,通过元素的ID或索引查找获得
MATCH:匹配图模式
WHERE:过滤条件
RETURN:定义返回的结果,返回所需要的
基本语法:
增(CREATE)
删(DELETE)
改(SET)
查(MATCH)
函数
With
Create:(网址:https://blog.csdn.net/ainuser/article/details/72268344)
创建单个节点(注意有个空格):create (n)
创建带标签的节点(ID:n,label:Person):create (n:Person)
创建带两个标签的节点:create (n:Person:Student)
创建带标签、属性的节点: create (n:Person {name:"weiw",age:23})
返回创建的节点:create (a {name:"Tom"}) return a
创建关系(两个节点之间的关系):
match (a:Person),(b:Person) where a.name="zhangs" and b.name="lisi" create (a)-[r:RELTYPE]->(b) return r
创建关系的同时设置属性:
match (a:Person),(b:Person) where a.name="zhangs" and b.name="lisi"
create (a)-[r:RELTYPE {name:a.name +"<->" + b.name}]->(b) return r
完整创建:三个节点两个关系
create p=(an {name:"an"})-[:WORKS_AT]->(neo)<-[:WORKS_AT]-(mach {name:"mach"}) return p;
例子:
最近《延禧攻略》比较火,以此为例,将剧中的部分任务进行简单的构建人物图谱
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查询语言如下所示:
若在有关系的节点上只删除节点则会报错,因此在删除节点的时候,将节点上的所有关系也进行删除
后续会继续更细有关于知识图谱的内容,有同道者,可以互相交流哦
Neo4j的使用-1相关推荐
- centos 7.4 上安装neo4j并测试
安装 neo4j 社区地址如下: https://neo4j.com/download-center/#community 在centos上的安装过程如下(使用root权限): 获取官方的key cd ...
- NOSQL图形数据库 - Neo4j
Neo4j入门指南 1.简介 2.特点 3.安装 4.基础操作 5.Java集成 5.1 内嵌数据库集成方式 5.2 服务器集成方式 5.3 Spring集成方式 参考文档 1.简介 Neo4j是一个 ...
- 图形数据库Neo4j基本了解
在深入学习图形数据库之前,首先理解属性图的基本概念.一个属性图是由顶点(Vertex),边(Edge),标签(Lable),关系类型和属性(Property)组成的有向图.顶点也称作节点(Node), ...
- linux如何安装neo4j,Ubuntu16.04 如何安装neo4j数据库
什么是neo4j数据库? neo4j数据库是图数据库的一种,属于nosql的一种,常见的nosql数据库还有redis.memcached.mongDB等,不同于传统的关系型数据库,nosql数据也有 ...
- Neo4j - CQL简介
CQL代表Cypher查询语言. 像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言. Neo4j CQL - 它是Neo4j图形数据库的查询语言. 它是一种声明性模式匹配语言 ...
- 如何用Neo4j和Scikit-Learn做机器学习任务?| 附超详细分步教程
作者 | Mark Needham 译者 | Tianyu.Shawnice 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 图算法不是一个新兴技术领域,在开源库中已经有很多 ...
- 最全 Neo4j 可视化图形数据库的工具!
图形可视化工具的类别 在我们深入研究工具之前,了解现有工具的类别很重要.所有可视化工具包都是根据特定目的构建的,因此您必须确保工具的目的符合您的需要. 我将所有图形可视化工具分为四大类: 开发工具,帮 ...
- neo4j安装_SpringBoot使用Neo4j
1.Neo4j简介 Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在 ...
- Knowledge Graph |(1)图数据库Neo4j简介与入门
基本概念 图数据库(Grahp Database)是基于图论实现的一种新型NoSQL数据库,它的存储结构和数据的查询方式都是以图论为基础的,图论中图的基本元素为节点和边,在图数据库中对应的就是节点和关 ...
- Neo4j和Titan的对比
Neo4j和Titan的对比 图数据库: 图是顶点和边(或者实体和实体之间的关系)的集合,而图数据库则是按照某种方式将这个中点和边的集合进行高效的存储,以用于复杂的关系查询,或者复杂的图形计算.图形数 ...
最新文章
- C++字符串反转(C++11)
- vaadin教程_Vaadin教程
- 水晶报表 jar包版本过低_工具类学习-UReport报表设计器整合
- php window.onload,tp_window.onload+相应操作
- win7中安装vs2008的升级成正式版的方法
- 10分钟学习简略五子棋 源码+注释教学
- 微软发现已遭在野利用的 SolarWinds 新0day
- Android开发22——广播接收者BroadcastReceiver的原理和注册方式
- android麦克风消回音处理,【技术帖】解决麦克风回音重的难题
- 儿童手表电话卡遇到问题需要怎么解决
- 小布老师_Oracle11g SQL基础入门系列培训(视频教学)
- photoshop--PS拼图
- 手把手教你写 Word 版本PRD
- 美国访问学者生活之行-公交及考驾照
- 假设检验 python_假的解释|假的意思|汉典“假”字的基本解释
- 《腾讯云CityBase产品白皮书》
- wine葡萄酒数据集KNNSVM分类实验
- 培养气质的99个好习惯
- rpgmaker是c语言编程吗,一起学rpgmaker脚本(1)【程序猿都能看懂的RGSS入门'`,、('∀`) '`,、】...
- realplayer java,realplayer插件_realplayer插件_下载realplayer播放器