Neo4j入门(六)从计算节点的出度、入度开始 |
您所在的位置:网站首页 › 入度,出度 › Neo4j入门(六)从计算节点的出度、入度开始 |
本文将会介绍一些较高级的Neo4j查询Cypher语句,先从计算节点的出度、入度开始。 在此之前,我们先构建一个简单的电影知识图谱。 图谱构建 我们将构建一个IMDB排名前250的电影知识图谱,其数据来源可访问网址:https://www.imdb.cn/imdb250/6,电影数据示例如下: 其中Movie为电影节点,Person为人物节点,包含导演、编剧、主演,Country为国家或地区,Genre为电影类型。关系Schema如下: 头结点尾结点关系备注MoviePersondirector电影的导演MoviePersoneditor电影的编剧MoviePersonactor电影的主演MovieCountrycountry电影所属国家或地区MovieGenrehas电影类型根据上述数据源及Schema,我们构建的电影图谱示例如下: 首先我们查询某个节点的出度,比如我们想知道肖申克的救赎的出度(即有多少关系以该节点为头结点),则可以使用如下查询语句: match (n:Movie{name: '肖申克的救赎'}) with n, size((n)-[]->()) as s return s;返回结果如下: s 9 如果我们想查询某个节点的入度,比如我们想知道前250部电影中有多少部是美国拍的,则可以使用如下查询语句: match (n:Country{name: '美国'}) with n, size((n) (m) return p;返回结果如下图: 匹配多种类型的节点时,不像匹配多种关系使用|那么方便,比如我们想知道图谱中的电影及国家,则可以使用如下查询语句: match (n) where n:Movie or n:Country return n.name; 限定条件的节点出度、入度比如我们想知道肖申克的救赎的主演和导演数量,则可以使用如下查询语句: match (n:Movie{name: '肖申克的救赎'}) with n, size((n)-[:actor|director]->()) as s return s;返回结果如下: s 6 又比如我们想知道一共有多少部剧情片和爱情片,则可以使用如下查询语句: match (n:Genre) where n.name = '剧情' or n.name = '爱情' with n, size((n) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |