1、人物数量
万事以简单开始。先看看上图上由有多少人物:
MATCH (c:Person) RETURN count(c)
2、概要统计
统计每个角色接触的其它角色的数目:
MATCH (c:person)-[:INTERACTS]->() WITH c, count(*) AS num RETURN min(num) AS min, max(num) AS max, avg(num) AS avg_characters, stdev(num) AS stdev
3、图(网络)的直径
网络的直径或者测底线或者最长最短路径:
// Find maximum diameter of network // maximum shortest path between two nodes
MATCH (a:person), (b:person) WHERE id(a) > id(b) MATCH p=shortestPath((a)-[:INTERACTS*]-(b)) RETURN length(p) AS len, extract(x IN nodes(p) | x.name) AS path ORDER BY len DESC LIMIT 100
4、最短路径
作者使用Cypher 的shortestPath函数找到图中任意两个角色之间的最短路径。让我们找出“王菲”和“周迅”之间的最短路径:
MATCH (王菲:person {name: "王菲"}), (周迅:person {name: "周迅"}) MATCH p=shortestPath((王菲)-[INTERACTS*]-(周迅)) RETURN p
5、所有最短路径
联结王菲”和“周迅”之间的最短路径可能还有其它路径,我们可以使用Cypher的allShortestPaths函数来查找:
MATCH (王菲:person {name: "王菲"}), (周迅:person {name: "周迅"}) MATCH p=allShortestPaths((王菲)-[INTERACTS*]-(周迅)) RETURN p
扫描二维码关注公众号,回复:
3931624 查看本文章
关键节点
在网络中,如果一个节点位于其它两个节点所有的最短路径上,即称为关键节点。下面我们找出网络中所有的关键节点: