当前位置:   article > 正文

《知识图谱》neo4j使用入门_neo4j入门

neo4j入门

1. neo4j介绍

官网

Neo4j是一个世界领先的开源图形数据库。 它是由Neo技术使用Java语言完全开发的。

-w1198

1.1 下载

-w1125

1.2 拷贝激活码

-w1198

1.3 安装

-w540

1.4 打开

-w1280

1.5 初始化运行环境

这里需要等待较长的时间

-w550

1.6 neo4j主界面

-w1270


2. neo4j 基础操作

为了快速入门那neo4j,我们通过官方的guide来快速入门

-w1279

以下内容将分为6部分

  1. Match(匹配)
  2. Create(创建)
  3. Delete(删除)
  4. Merge(合并)
  5. List(列表)
  6. Where(条件过滤)
  7. Match进阶
  8. Recommend(推荐)

2.1 Match(匹配)操作

查询name(名字)Tom Hanks的节点

MATCH (a:Person {name:'Tom Hanks'}) RETURN a
  • 1

-w1260

2.2 Create(创建)操作

创建一个Person(人)节点,name(名字)Brie Larson,born(出生日期)1989

CREATE (a:Person {name:'Brie Larson', born:1989}) RETURN a
  • 1

-w1256

创建一个Movie(电影)节点,title(标题)Captain Marvel,released(发布时间)2019,tagline(标语)Everything begins with a (her)o.

CREATE (a:Movie {title:'Captain Marvel', released:2019, 
tagline:'Everything begins with a (her)o.'}) RETURN a
  • 1
  • 2

-w1265

2.3 Delete(删除)操作

作用

  1. 删除创建次数过多的任何人或电影
  2. 注意此查询将删除节点和关系

删除name(名字)Brie LarsonPerson(人)节点

MATCH (a:Person {name:'Brie Larson'}) DETACH DELETE a
  • 1

-w1266

MATCH (a:Movie {title:'Captain Marvel'}) DETACH DELETE a
  • 1

-w1263

2.4 Merge(合并)操作

创建或者更新节点

合并操作通常与匹配(match)和更新(update)一起使用,当使用ON CREATE的时候会新创建一个节点,使用ON MATCH的时候会更新已有的的节点

MERGE (a:Person {name:'Brie Larson'}) 
ON CREATE SET a.born = 1989 
ON MATCH SET a.stars = COALESCE(a.stars, 0) + 1
RETURN a
  • 1
  • 2
  • 3
  • 4

-w1263

  1. Match(匹配)一个Person(人)和一个Movie(电影)
  2. 指定一个Person(人)的r.roles(角色)在这个Movie(电影)里
MATCH (a:Person {name:'Brie Larson'}), (b:Movie {title:'Captain Marvel'})
MERGE (a)-[r:ACTED_IN]->(b) SET r.roles = ['Carol Danvers']
RETURN a,r,b
  • 1
  • 2
  • 3

-w1209

如果之前进行了Delete操作,则需要把删除的节点添加进来,不然运行会无结果

CREATE (a:Movie {title:'Captain Marvel', released:2019, 
tagline:'Everything begins with a (her)o.'}) RETURN a

CREATE (a:Person {name:'Brie Larson', born:1989}) RETURN a

MATCH (a:Person {name:'Brie Larson'}), (b:Movie {title:'Captain Marvel'})
MERGE (a)-[r:ACTED_IN]->(b) SET r.roles = ['Carol Danvers']
RETURN a,r,b
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.5 List(列表)操作

列表操作

  1. 在此高级合并中,列表用于首先<>过滤当前角色,
  2. 将过滤后的角色列表与当前角色合并成一个新列表
MATCH (a:Person {name:'Brie Larson'}), (b:Movie {title:'Captain Marvel'})
MERGE (a)-[r:ACTED_IN]->(b) 
SET r.roles = [x in r.roles WHERE x <> 'Captain Marvel'] + ['Captain Marvel']
RETURN a,r,b
  • 1
  • 2
  • 3
  • 4

-w1207

2.6 Where(条件过滤)

where操作主要用来做过滤,使用和sql中的where类似

  1. 匹配出name'Tom'开头的Person(人)结果集
MATCH (a:Person) WHERE a.name STARTS WITH 'Tom' RETURN a
  • 1

-w1197

  1. MATCH(匹配)出released发布时间大于1990,小于2000的Movie(电影)节点
MATCH (a:Movie) WHERE a.released > 1990 AND a.released < 2000 RETURN a
  • 1

-w1195

2.7 Match进阶

操作说明:

  1. MATCH(匹配)出Movie(电影)中存在人名为Tom Hanks的节点
  2. 其中是ACTED_IN表示节点接的关系,其中有一个属性叫做roles角色,在这里表示电影中存在角色的关系
MATCH (a:Person {name:'Tom Hanks'})-[:ACTED_IN]->(m:Movie) RETURN a,m
  • 1

-w1198

操作说明:

  1. 标题为Cloud AtlasMovie(电影)DIRECTED导演
MATCH (m:Movie {title:'Cloud Atlas'})<-[:DIRECTED]-(d:Person) RETURN d
  • 1

-w1195

操作说明:

  1. 查找与Tom Hanks一起ACTED_IN演过电影的人,打印出人名
MATCH (a:Person {name:'Tom Hanks'})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(c) RETURN c.name
  • 1

-w1186

操作说明:

  1. 查找出于电影Cloud Atlas有联系的people.name人名,type(relatedTo)关系类型,relatedTo关系信息
MATCH (people:Person)-[relatedTo]-(:Movie {title:'Cloud Atlas'}) 
RETURN people.name, type(relatedTo), relatedTo
  • 1
  • 2

-w1195

操作说明:

  1. 好莱坞电影(hollywood)和演员凯文·培根(Kevin Bacon)最多4跳的结果
MATCH (bacon:Person {name:"Kevin Bacon"})-[*1..4]-(hollywood)
RETURN DISTINCT hollywood
  • 1
  • 2

-w1205

操作说明:

  1. 演员Kevin Bacon与演员Al Pacino的最短路径
MATCH p=shortestPath(
              (bacon:Person {name:"Kevin Bacon"})-[*]-(a:Person {name:'Al Pacino'})
            )
RETURN p
  • 1
  • 2
  • 3
  • 4

-w1194

2.8 Recommend(推荐)

操作说明:
扩展合作者,去查找尚未与汤姆·汉克斯(Tom Hanks)合作,但是和他合作者合作过的人

MATCH (a:Person {name:'Tom Hanks'})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors),
      (coActors)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(cocoActors)
WHERE NOT (a)-[:ACTED_IN]->()<-[:ACTED_IN]-(cocoActors) AND a <> cocoActors
RETURN cocoActors.name AS Recommended, count(*) AS Strength ORDER BY Strength DESC
  • 1
  • 2
  • 3
  • 4

-w1192

操作说明:
寻找可以将Tom Hanks介绍给Tom Cruise的人

MATCH (a:Person {name:'Tom Hanks'})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors),
(coActors)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(other:Person {name:'Tom Cruise'})
RETURN a, m, coActors, m2, other
  • 1
  • 2
  • 3

-w1197

参考

  1. 官网
  2. 文档

关注公众号,持续更新哟~
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/473956
推荐阅读
相关标签
  

闽ICP备14008679号