本文将会介绍一些较高级的Neo4j查询Cypher语句,先从计算节点的出度、入度开始。
在此之前,我们先构建一个简单的电影知识图谱。
图谱构建
我们将构建一个IMDB排名前250的电影知识图谱,其数据来源可访问网址:https://www.imdb.cn/imdb250/6,电影数据示例如下:

其中节点的Schema如下:
| 节点类型 | 属性 |
|---|---|
| Movie | name,language,releaseDate,minutes |
| Person | name |
| Country | name |
| Genre | name |
其中Movie为电影节点,Person为人物节点,包含导演、编剧、主演,Country为国家或地区,Genre为电影类型。关系Schema如下:
| 头结点 | 尾结点 | 关系 | 备注 |
|---|---|---|---|
| Movie | Person | director | 电影的导演 |
| Movie | Person | editor | 电影的编剧 |
| Movie | Person | actor | 电影的主演 |
| Movie | Country | country | 电影所属国家或地区 |
| Movie | Genre | has | 电影类型 |
根据上述数据源及Schema,我们构建的电影图谱示例如下:

Cypher查询
- 查询节点的出度、入度
首先我们查询某个节点的出度,比如我们想知道肖申克的救赎的出度(即有多少关系以该节点为头结点),则可以使用如下查询语句:
match (n:Movie{name: '肖申克的救赎'}) with n, size((n)-<

本文介绍了如何使用Cypher语句在Neo4j中查询电影知识图谱的节点出度、入度,匹配多关系、不同类型节点,以及带有条件的度量和排序。通过实例展示了如何揭示电影图谱中的有趣事实。
最低0.47元/天 解锁文章
3809





