Neo4j 应用案例——社交网络

创建示范案例节点及关系

(1)执行程序

create
(小北:朋友圈{姓名:"小北",喜欢的书类:"Poetry"}), 
(小菲:朋友圈{姓名:"小菲",喜欢的书类:"Science Fiction"}), 
(小鹏:朋友圈{姓名:"小鹏",喜欢的书类:"Music"}), 
(小颖:朋友圈{姓名:"小颖",喜欢的书类:"Politics"}),
(小兰:朋友圈{姓名:"小兰",喜欢的书类:"Music"}),
(小峰:朋友圈{姓名:"小峰",喜欢的书类:"Travel"}), 
(小讯:朋友圈{姓名:"小讯",喜欢的书类:"Poetry"}), 
(小东:朋友圈{姓名:"小东",喜欢的书类:"Sequential Art"}), 
(小唯:朋友圈{姓名:"小唯",喜欢的书类:"Young Adult"}), 
(小窦:朋友圈{姓名:"小窦",喜欢的书类:"Poetry"}), 
(小齐:朋友圈{姓名:"小齐",喜欢的书类:"Default"}), 
(小林:朋友圈{姓名:"小林",喜欢的书类:"Poetry"}), 
(小锐:朋友圈{姓名:"小锐",喜欢的书类:"Default"}), 
(小伟:朋友圈{姓名:"小伟",喜欢的书类:"Young Adult"}), 
(小玲:朋友圈{姓名:"小玲",喜欢的书类:"Business"}), 
(小讯)-[:认识]->(小窦), 
(小讯)-[:认识]->(小齐), 
(小讯)-[:认识]->(小林),
(小讯)-[:认识]->(小鹏), 
(小讯)-[:认识]->(小伟), 
(小讯)-[:认识]->(小峰), 
(小菲)-[:认识]->(小鹏), 
(小菲)-[:认识]->(小峰), 
(小菲)-[:认识]->(小唯), 
(小峰)-[:认识]->(小北),
(小峰)-[:认识]->(小兰), 
(小东)-[:认识]->(小林),
(小东)-[:认识]->(小锐), 
(小东)-[:认识]->(小菲), 
(小鹏)-[:认识]->(小颖), 
(小北)-[:认识]->(小兰), 
(小颖)-[:认识]->(小东), 
(小唯)-[:认识]->(小鹏), 
(小唯)-[:认识]->(小锐), 
(小伟)-[:认识]->(小玲)

return *

(2)执行结果
Neo4j 应用案例——社交网络_第1张图片

1. 展示朋友圈

(1)功能:展示小峰的朋友圈
(2)执行程序

match p = (:朋友圈{姓名:'小峰'})-[*..6]-() return p

(3)执行结果
Neo4j 应用案例——社交网络_第2张图片

2. 展示一度关系

(1)展示小讯直接认识的朋友
(2)执行程序

match p=(:朋友圈{姓名:'小讯'})-[:认识]->() return p

(3)执行结果
Neo4j 应用案例——社交网络_第3张图片

3. 展示二度关系

(1)功能:展示小讯认识的朋友以及小讯认识的朋友的朋友
(2)执行程序

match p=(:朋友圈{姓名:'小讯'})-[*..2]->() return p

(3)执行结果
Neo4j 应用案例——社交网络_第4张图片

4. 依托社交网络搜寻两人之间最短熟人路径

(1)功能:寻找小讯与小锐之间的最短路径。
(2)执行程序

match p=shortestpath((:朋友圈{姓名:'小讯'})-[*..6]->(:朋友圈{姓名:'小锐'})) return p

(3)执行结果
Neo4j 应用案例——社交网络_第5张图片

5. 搜索两人之间所有的最短路径

(1)功能:寻找小讯与小菲之间所有的最短路径
(2)执行程序

match p=allshortestpaths((:朋友圈{姓名:'小讯'})-[*..6]-(:朋友圈{姓名:'小菲'})) return p

(3)执行结果
Neo4j 应用案例——社交网络_第6张图片

你可能感兴趣的:(Neo4j,neo4j)