Neo4j是一个原生图数据库,它存储和处理数据的方式与你刚在浏览器中画的关系图几乎一样:用节点(如“基努·里维斯”)、关系(如“出演”)和属性(如“角色:尼奥”)来构建数据模型。这种结构让它特别擅长快速分析和查询数据之间的复杂联系。

为什么Neo4j这么快?

它的优势在处理关联数据时尤为明显。与传统关系型数据库(如MySQL)需要使用复杂的“连接”操作来查询关系不同,Neo4j在存储数据时,就直接把“关系”作为一等公民保存了下来。这使得查询如“朋友的朋友”这种多层关系时,速度能比传统数据库快上千倍。

一、安装步骤

sudo apt-get update
sudo apt install neo4j-enterprise=1:5.26.14
sudo systemctl start neo4j
sudo systemctl enable neo4j
sudo systemctl status neo4j
ss -ltnp|grep 7474

vim /etc/neo4j/neo4j.conf
#开放远程连接
server.default_listen_address=0.0.0.0
server.bolt.listen_address=:7687
server.http.listen_address=:7474
#重启生效
sudo systemctl restart neo4j
sudo systemctl status neo4j

二、UI界面登陆

http://192.168.119.100:7474
初始登陆要更改密码
先输入默认密码 neo4j
再更改新密码 xxxxxxx

三、导入测试数据

1 块:创建电影节点
CREATE (matrix1:Movie {
    title: '黑客帝国',
    title_en: 'The Matrix',
    year: 1999,
    runtime: 136,
    rating: 8.7,
    box_office: 467000000,
    description: '一名程序员发现现实世界其实是由邪恶人工智能控制的虚拟世界'
});

CREATE (matrix2:Movie {
    title: '黑客帝国2:重装上阵',
    title_en: 'The Matrix Reloaded',
    year: 2003,
    runtime: 138,
    rating: 7.2,
    box_office: 742000000,
    description: '尼奥发现锡安面临机器大军的威胁,需要寻找关键人物'
});

CREATE (matrix3:Movie {
    title: '黑客帝国3:矩阵革命',
    title_en: 'The Matrix Revolutions',
    year: 2003,
    runtime: 129,
    rating: 6.7,
    box_office: 427000000,
    description: '尼奥与史密斯特工展开最终对决,人类与机器的战争进入尾声'
});

CREATE (matrix4:Movie {
    title: '黑客帝国4:矩阵重启',
    title_en: 'The Matrix Resurrections',
    year: 2021,
    runtime: 148,
    rating: 5.7,
    box_office: 157000000,
    description: '尼奥和崔妮蒂被困在模拟现实中,需要重新觉醒'
});

CREATE (animatrix:Movie {
    title: '黑客帝国动画版',
    title_en: 'The Animatrix',
    year: 2003,
    runtime: 100,
    rating: 7.5,
    box_office: 0,
    description: '九部动画短片组成的黑客帝国前传和支线故事'
});2 块:创建演员节点
CREATE (keanu:Person {name: '基努·里维斯', name_en: 'Keanu Reeves', born: 1964, country: '加拿大', gender: '男'});
CREATE (carrie:Person {name: '凯瑞-安·莫斯', name_en: 'Carrie-Anne Moss', born: 1967, country: '加拿大', gender: '女'});
CREATE (laurence:Person {name: '劳伦斯·菲什伯恩', name_en: 'Laurence Fishburne', born: 1961, country: '美国', gender: '男'});
CREATE (hugo:Person {name: '雨果·维文', name_en: 'Hugo Weaving', born: 1960, country: '澳大利亚', gender: '男'});
CREATE (jada:Person {name: '贾达·萍克特·史密斯', name_en: 'Jada Pinkett Smith', born: 1971, country: '美国', gender: '女'});
CREATE (gloria:Person {name: '格洛丽亚·福斯特', name_en: 'Gloria Foster', born: 1933, country: '美国', gender: '女'});
CREATE (joe:Person {name: '乔·潘托里亚诺', name_en: 'Joe Pantoliano', born: 1951, country: '美国', gender: '男'});
CREATE (marcus:Person {name: '马库斯·钟', name_en: 'Marcus Chong', born: 1967, country: '美国', gender: '男'});
CREATE (anthony:Person {name: '安东尼·雷·帕克', name_en: 'Anthony Ray Parker', born: 1958, country: '美国', gender: '男'});
CREATE (monica:Person {name: '莫妮卡·贝鲁奇', name_en: 'Monica Bellucci', born: 1964, country: '意大利', gender: '女'});
CREATE (lambert:Person {name: '兰伯特·威尔逊', name_en: 'Lambert Wilson', born: 1958, country: '法国', gender: '男'});
CREATE (nona:Person {name: '诺娜·加耶', name_en: 'Nona Gaye', born: 1974, country: '美国', gender: '女'});
CREATE (jessica:Person {name: '杰西卡·亨维克', name_en: 'Jessica Henwick', born: 1992, country: '英国', gender: '女'});
CREATE (neil:Person {name: '尼尔·帕特里克·哈里斯', name_en: 'Neil Patrick Harris', born: 1973, country: '美国', gender: '男'});3 块:创建导演、角色、类型、制作公司、奖项节点
CREATE (wachowski:Person {name: '沃卓斯基姐妹', name_en: 'The Wachowskis', born: 1965, country: '美国', gender: '女', note: '拉娜·沃卓斯基 & 莉莉·沃卓斯基'});

CREATE (role_neo:Role {name: '尼奥', name_en: 'Neo', alias: '托马斯·安德森'});
CREATE (role_trinity:Role {name: '崔妮蒂', name_en: 'Trinity'});
CREATE (role_morpheus:Role {name: '墨菲斯', name_en: 'Morpheus'});
CREATE (role_smith:Role {name: '史密斯特工', name_en: 'Agent Smith'});
CREATE (role_niobe:Role {name: '奈奥比', name_en: 'Niobe'});
CREATE (role_oracle:Role {name: '先知', name_en: 'The Oracle'});
CREATE (role_cypher:Role {name: '塞弗', name_en: 'Cypher'});
CREATE (role_tank:Role {name: '坦克', name_en: 'Tank'});
CREATE (role_dozer:Role {name: '道泽', name_en: 'Dozer'});
CREATE (role_persephone:Role {name: '珀耳塞福涅', name_en: 'Persephone'});
CREATE (role_merovingian:Role {name: '梅罗文加', name_en: 'The Merovingian'});
CREATE (role_zee:Role {name: '齐', name_en: 'Zee'});
CREATE (role_bugs:Role {name: '巴格斯', name_en: 'Bugs'});
CREATE (role_analyst:Role {name: '分析师', name_en: 'The Analyst'});

CREATE (genre_sci:Genre {name: '科幻'});
CREATE (genre_action:Genre {name: '动作'});
CREATE (genre_cyber:Genre {name: '赛博朋克'});
CREATE (genre_philosophy:Genre {name: '哲学'});
CREATE (genre_adventure:Genre {name: '冒险'});

CREATE (studio_wb:Studio {name: '华纳兄弟', name_en: 'Warner Bros.', country: '美国'});
CREATE (studio_village:Studio {name: '威秀电影', name_en: 'Village Roadshow', country: '澳大利亚'});
CREATE (studio_silver:Studio {name: '银影制作', name_en: 'Silver Pictures', country: '美国'});

CREATE (award_oscar_vis: Award {name: '奥斯卡最佳视觉效果', year: 2000, category: '奥斯卡'});
CREATE (award_oscar_edit: Award {name: '奥斯卡最佳电影剪辑', year: 2000, category: '奥斯卡'});
CREATE (award_sound: Award {name: '奥斯卡最佳音效', year: 2000, category: '奥斯卡'});
CREATE (award_saturn: Award {name: '土星奖最佳科幻电影', year: 2000, category: '土星奖'});
CREATE (award_bAFTA: Award {name: 'BAFTA最佳视觉效果', year: 2000, category: 'BAFTA'});4 块:创建角色-演员映射关系 (PLAYED)
MATCH (keanu:Person {name: '基努·里维斯'}), (role:Role {name: '尼奥'}) 
CREATE (keanu)-[:PLAYED {movie: '黑客帝国'}]->(role);

MATCH (carrie:Person {name: '凯瑞-安·莫斯'}), (role:Role {name: '崔妮蒂'}) 
CREATE (carrie)-[:PLAYED {movie: '黑客帝国'}]->(role);

MATCH (laurence:Person {name: '劳伦斯·菲什伯恩'}), (role:Role {name: '墨菲斯'}) 
CREATE (laurence)-[:PLAYED {movie: '黑客帝国'}]->(role);

MATCH (hugo:Person {name: '雨果·维文'}), (role:Role {name: '史密斯特工'}) 
CREATE (hugo)-[:PLAYED {movie: '黑客帝国'}]->(role);

MATCH (gloria:Person {name: '格洛丽亚·福斯特'}), (role:Role {name: '先知'}) 
CREATE (gloria)-[:PLAYED {movie: '黑客帝国'}]->(role);

MATCH (joe:Person {name: '乔·潘托里亚诺'}), (role:Role {name: '塞弗'}) 
CREATE (joe)-[:PLAYED {movie: '黑客帝国'}]->(role);5 块:创建导演关系
MATCH (wachowski:Person {name: '沃卓斯基姐妹'}), (matrix1:Movie {title: '黑客帝国'})
CREATE (wachowski)-[:DIRECTED {year: 1999}]->(matrix1);

MATCH (wachowski:Person {name: '沃卓斯基姐妹'}), (matrix2:Movie {title: '黑客帝国2:重装上阵'})
CREATE (wachowski)-[:DIRECTED {year: 2003}]->(matrix2);

MATCH (wachowski:Person {name: '沃卓斯基姐妹'}), (matrix3:Movie {title: '黑客帝国3:矩阵革命'})
CREATE (wachowski)-[:DIRECTED {year: 2003}]->(matrix3);

MATCH (wachowski:Person {name: '沃卓斯基姐妹'}), (matrix4:Movie {title: '黑客帝国4:矩阵重启'})
CREATE (wachowski)-[:DIRECTED {year: 2021}]->(matrix4);6 块:创建演员出演电影关系
MATCH (keanu:Person {name: '基努·里维斯'}), (matrix1:Movie {title: '黑客帝国'})
CREATE (keanu)-[:ACTED_IN {role: '尼奥', year: 1999}]->(matrix1);

MATCH (keanu:Person {name: '基努·里维斯'}), (matrix2:Movie {title: '黑客帝国2:重装上阵'})
CREATE (keanu)-[:ACTED_IN {role: '尼奥', year: 2003}]->(matrix2);

MATCH (keanu:Person {name: '基努·里维斯'}), (matrix3:Movie {title: '黑客帝国3:矩阵革命'})
CREATE (keanu)-[:ACTED_IN {role: '尼奥', year: 2003}]->(matrix3);

MATCH (keanu:Person {name: '基努·里维斯'}), (matrix4:Movie {title: '黑客帝国4:矩阵重启'})
CREATE (keanu)-[:ACTED_IN {role: '尼奥', year: 2021}]->(matrix4);

MATCH (carrie:Person {name: '凯瑞-安·莫斯'}), (matrix1:Movie {title: '黑客帝国'})
CREATE (carrie)-[:ACTED_IN {role: '崔妮蒂', year: 1999}]->(matrix1);

MATCH (carrie:Person {name: '凯瑞-安·莫斯'}), (matrix2:Movie {title: '黑客帝国2:重装上阵'})
CREATE (carrie)-[:ACTED_IN {role: '崔妮蒂', year: 2003}]->(matrix2);

MATCH (carrie:Person {name: '凯瑞-安·莫斯'}), (matrix3:Movie {title: '黑客帝国3:矩阵革命'})
CREATE (carrie)-[:ACTED_IN {role: '崔妮蒂', year: 2003}]->(matrix3);

MATCH (carrie:Person {name: '凯瑞-安·莫斯'}), (matrix4:Movie {title: '黑客帝国4:矩阵重启'})
CREATE (carrie)-[:ACTED_IN {role: '崔妮蒂', year: 2021}]->(matrix4);

MATCH (laurence:Person {name: '劳伦斯·菲什伯恩'}), (matrix1:Movie {title: '黑客帝国'})
CREATE (laurence)-[:ACTED_IN {role: '墨菲斯', year: 1999}]->(matrix1);

MATCH (laurence:Person {name: '劳伦斯·菲什伯恩'}), (matrix2:Movie {title: '黑客帝国2:重装上阵'})
CREATE (laurence)-[:ACTED_IN {role: '墨菲斯', year: 2003}]->(matrix2);

MATCH (laurence:Person {name: '劳伦斯·菲什伯恩'}), (matrix3:Movie {title: '黑客帝国3:矩阵革命'})
CREATE (laurence)-[:ACTED_IN {role: '墨菲斯', year: 2003}]->(matrix3);

MATCH (hugo:Person {name: '雨果·维文'}), (matrix1:Movie {title: '黑客帝国'})
CREATE (hugo)-[:ACTED_IN {role: '史密斯特工', year: 1999}]->(matrix1);

MATCH (hugo:Person {name: '雨果·维文'}), (matrix2:Movie {name: '黑客帝国2:重装上阵'})
CREATE (hugo)-[:ACTED_IN {role: '史密斯特工', year: 2003}]->(matrix2);

MATCH (hugo:Person {name: '雨果·维文'}), (matrix3:Movie {title: '黑客帝国3:矩阵革命'})
CREATE (hugo)-[:ACTED_IN {role: '史密斯特工', year: 2003}]->(matrix3);

MATCH (jada:Person {name: '贾达·萍克特·史密斯'}), (matrix2:Movie {title: '黑客帝国2:重装上阵'})
CREATE (jada)-[:ACTED_IN {role: '奈奥比', year: 2003}]->(matrix2);

MATCH (jada:Person {name: '贾达·萍克特·史密斯'}), (matrix3:Movie {title: '黑客帝国3:矩阵革命'})
CREATE (jada)-[:ACTED_IN {role: '奈奥比', year: 2003}]->(matrix3);

MATCH (monica:Person {name: '莫妮卡·贝鲁奇'}), (matrix2:Movie {title: '黑客帝国2:重装上阵'})
CREATE (monica)-[:ACTED_IN {role: '珀耳塞福涅', year: 2003}]->(matrix2);

MATCH (monica:Person {name: '莫妮卡·贝鲁奇'}), (matrix3:Movie {title: '黑客帝国3:矩阵革命'})
CREATE (monica)-[:ACTED_IN {role: '珀耳塞福涅', year: 2003}]->(matrix3);

MATCH (lambert:Person {name: '兰伯特·威尔逊'}), (matrix2:Movie {title: '黑客帝国2:重装上阵'})
CREATE (lambert)-[:ACTED_IN {role: '梅罗文加', year: 2003}]->(matrix2);

MATCH (jessica:Person {name: '杰西卡·亨维克'}), (matrix4:Movie {title: '黑客帝国4:矩阵重启'})
CREATE (jessica)-[:ACTED_IN {role: '巴格斯', year: 2021}]->(matrix4);

MATCH (neil:Person {name: '尼尔·帕特里克·哈里斯'}), (matrix4:Movie {title: '黑客帝国4:矩阵重启'})
CREATE (neil)-[:ACTED_IN {role: '分析师', year: 2021}]->(matrix4);7 块:创建电影类型关系
MATCH (matrix1:Movie {title: '黑客帝国'}), (genre:Genre {name: '科幻'}) 
CREATE (matrix1)-[:HAS_GENRE]->(genre);

MATCH (matrix1:Movie {title: '黑客帝国'}), (genre:Genre {name: '动作'}) 
CREATE (matrix1)-[:HAS_GENRE]->(genre);

MATCH (matrix1:Movie {title: '黑客帝国'}), (genre:Genre {name: '赛博朋克'}) 
CREATE (matrix1)-[:HAS_GENRE]->(genre);

MATCH (matrix1:Movie {title: '黑客帝国'}), (genre:Genre {name: '哲学'}) 
CREATE (matrix1)-[:HAS_GENRE]->(genre);

MATCH (matrix2:Movie {title: '黑客帝国2:重装上阵'}), (genre:Genre {name: '科幻'}) 
CREATE (matrix2)-[:HAS_GENRE]->(genre);

MATCH (matrix2:Movie {title: '黑客帝国2:重装上阵'}), (genre:Genre {name: '动作'}) 
CREATE (matrix2)-[:HAS_GENRE]->(genre);

MATCH (matrix2:Movie {title: '黑客帝国2:重装上阵'}), (genre:Genre {name: '冒险'}) 
CREATE (matrix2)-[:HAS_GENRE]->(genre);

MATCH (matrix3:Movie {title: '黑客帝国3:矩阵革命'}), (genre:Genre {name: '科幻'}) 
CREATE (matrix3)-[:HAS_GENRE]->(genre);

MATCH (matrix3:Movie {title: '黑客帝国3:矩阵革命'}), (genre:Genre {name: '动作'}) 
CREATE (matrix3)-[:HAS_GENRE]->(genre);

MATCH (matrix4:Movie {title: '黑客帝国4:矩阵重启'}), (genre:Genre {name: '科幻'}) 
CREATE (matrix4)-[:HAS_GENRE]->(genre);

MATCH (matrix4:Movie {title: '黑客帝国4:矩阵重启'}), (genre:Genre {name: '动作'}) 
CREATE (matrix4)-[:HAS_GENRE]->(genre);

MATCH (animatrix:Movie {title: '黑客帝国动画版'}), (genre:Genre {name: '科幻'}) 
CREATE (animatrix)-[:HAS_GENRE]->(genre);

MATCH (animatrix:Movie {title: '黑客帝国动画版'}), (genre:Genre {name: '赛博朋克'}) 
CREATE (animatrix)-[:HAS_GENRE]->(genre);8 块:创建制作公司关系
MATCH (matrix1:Movie {title: '黑客帝国'}), (studio:Studio {name: '华纳兄弟'}) 
CREATE (studio)-[:PRODUCED {year: 1999}]->(matrix1);

MATCH (matrix1:Movie {title: '黑客帝国'}), (studio:Studio {name: '威秀电影'}) 
CREATE (studio)-[:PRODUCED {year: 1999}]->(matrix1);

MATCH (matrix2:Movie {title: '黑客帝国2:重装上阵'}), (studio:Studio {name: '华纳兄弟'}) 
CREATE (studio)-[:PRODUCED {year: 2003}]->(matrix2);

MATCH (matrix3:Movie {title: '黑客帝国3:矩阵革命'}), (studio:Studio {name: '华纳兄弟'}) 
CREATE (studio)-[:PRODUCED {year: 2003}]->(matrix3);

MATCH (matrix4:Movie {title: '黑客帝国4:矩阵重启'}), (studio:Studio {name: '华纳兄弟'}) 
CREATE (studio)-[:PRODUCED {year: 2021}]->(matrix4);9 块:创建续集/前传关系
MATCH (matrix1:Movie {title: '黑客帝国'}), (matrix2:Movie {title: '黑客帝国2:重装上阵'})
CREATE (matrix1)-[:SEQUEL_OF {order: 1}]->(matrix2);

MATCH (matrix2:Movie {title: '黑客帝国2:重装上阵'}), (matrix3:Movie {title: '黑客帝国3:矩阵革命'})
CREATE (matrix2)-[:SEQUEL_OF {order: 2}]->(matrix3);

MATCH (matrix1:Movie {title: '黑客帝国'}), (animatrix:Movie {title: '黑客帝国动画版'})
CREATE (matrix1)-[:PREQUEL_OF]->(animatrix);

MATCH (matrix3:Movie {title: '黑客帝国3:矩阵革命'}), (matrix4:Movie {title: '黑客帝国4:矩阵重启'})
CREATE (matrix3)-[:SEQUEL_OF {order: 3}]->(matrix4);10 块:创建角色关系
MATCH (neo:Role {name: '尼奥'}), (trinity:Role {name: '崔妮蒂'})
CREATE (neo)-[:LOVES]->(trinity);

MATCH (trinity:Role {name: '崔妮蒂'}), (neo:Role {name: '尼奥'})
CREATE (trinity)-[:LOVES]->(neo);

MATCH (neo:Role {name: '尼奥'}), (morpheus:Role {name: '墨菲斯'})
CREATE (neo)-[:TRUSTS]->(morpheus);

MATCH (morpheus:Role {name: '墨菲斯'}), (neo:Role {name: '尼奥'})
CREATE (morpheus)-[:BELIEVES_IN]->(neo);

MATCH (neo:Role {name: '尼奥'}), (smith:Role {name: '史密斯特工'})
CREATE (neo)-[:ENEMY_OF]->(smith);

MATCH (smith:Role {name: '史密斯特工'}), (neo:Role {name: '尼奥'})
CREATE (smith)-[:ENEMY_OF]->(neo);

MATCH (morpheus:Role {name: '墨菲斯'}), (oracle:Role {name: '先知'})
CREATE (morpheus)-[:SEEKS_GUIDANCE_FROM]->(oracle);

MATCH (cypher:Role {name: '塞弗'}), (smith:Role {name: '史密斯特工'})
CREATE (cypher)-[:BETRAYS_TO]->(smith);11 块:创建奖项关系
MATCH (matrix1:Movie {title: '黑客帝国'}), (award:Award {name: '奥斯卡最佳视觉效果'})
CREATE (matrix1)-[:WON_AWARD {year: 2000}]->(award);

MATCH (matrix1:Movie {title: '黑客帝国'}), (award:Award {name: '奥斯卡最佳电影剪辑'})
CREATE (matrix1)-[:WON_AWARD {year: 2000}]->(award);

MATCH (matrix1:Movie {title: '黑客帝国'}), (award:Award {name: '奥斯卡最佳音效'})
CREATE (matrix1)-[:WON_AWARD {year: 2000}]->(award);

MATCH (matrix1:Movie {title: '黑客帝国'}), (award:Award {name: '土星奖最佳科幻电影'})
CREATE (matrix1)-[:WON_AWARD {year: 2000}]->(award);

MATCH (matrix1:Movie {title: '黑客帝国'}), (award:Award {name: 'BAFTA最佳视觉效果'})
CREATE (matrix1)-[:WON_AWARD {year: 2000}]->(award);12 块:创建演员合作关系
MATCH (keanu:Person {name: '基努·里维斯'}), (carrie:Person {name: '凯瑞-安·莫斯'})
CREATE (keanu)-[:COLLABORATED {movies: ['黑客帝国', '黑客帝国2:重装上阵', '黑客帝国3:矩阵革命', '黑客帝国4:矩阵重启']}]->(carrie);

MATCH (keanu:Person {name: '基努·里维斯'}), (laurence:Person {name: '劳伦斯·菲什伯恩'})
CREATE (keanu)-[:COLLABORATED {movies: ['黑客帝国', '黑客帝国2:重装上阵', '黑客帝国3:矩阵革命']}]->(laurence);

MATCH (keanu:Person {name: '基努·里维斯'}), (hugo:Person {name: '雨果·维文'})
CREATE (keanu)-[:COLLABORATED {movies: ['黑客帝国', '黑客帝国2:重装上阵', '黑客帝国3:矩阵革命']}]->(hugo);

MATCH (carrie:Person {name: '凯瑞-安·莫斯'}), (laurence:Person {name: '劳伦斯·菲什伯恩'})
CREATE (carrie)-[:COLLABORATED {movies: ['黑客帝国', '黑客帝国2:重装上阵', '黑客帝国3:矩阵革命']}]->(laurence);13 块:创建共同出演关系(CO_STARRED)
MATCH (matrix1:Movie {title: '黑客帝国'})
MATCH (p1:Person)-[:ACTED_IN]->(matrix1), (p2:Person)-[:ACTED_IN]->(matrix1)
WHERE p1 <> p2 AND id(p1) < id(p2)
CREATE (p1)-[:CO_STARRED {movie: '黑客帝国', year: 1999}]->(p2);

MATCH (matrix2:Movie {title: '黑客帝国2:重装上阵'})
MATCH (p1:Person)-[:ACTED_IN]->(matrix2), (p2:Person)-[:ACTED_IN]->(matrix2)
WHERE p1 <> p2 AND id(p1) < id(p2)
CREATE (p1)-[:CO_STARRED {movie: '黑客帝国2:重装上阵', year: 2003}]->(p2);

MATCH (matrix3:Movie {title: '黑客帝国3:矩阵革命'})
MATCH (p1:Person)-[:ACTED_IN]->(matrix3), (p2:Person)-[:ACTED_IN]->(matrix3)
WHERE p1 <> p2 AND id(p1) < id(p2)
CREATE (p1)-[:CO_STARRED {movie: '黑客帝国3:矩阵革命', year: 2003}]->(p2);

MATCH (matrix4:Movie {title: '黑客帝国4:矩阵重启'})
MATCH (p1:Person)-[:ACTED_IN]->(matrix4), (p2:Person)-[:ACTED_IN]->(matrix4)
WHERE p1 <> p2 AND id(p1) < id(p2)
CREATE (p1)-[:CO_STARRED {movie: '黑客帝国4:矩阵重启', year: 2021}]->(p2);14 块:验证数据
RETURN "数据创建完成!" AS Result;
MATCH (n) 
RETURN labels(n) AS Type, count(n) AS Count
ORDER BY Type;

四、查询数据

// 1. 节点统计
MATCH (n)
WITH labels(n) AS type, count(n) AS count
RETURN ‘节点统计’ AS 检查项, type AS 类型, count AS 数量
ORDER BY count DESC

UNION ALL

// 2. 关系统计
MATCH ()-[r]->()
WITH type® AS type, count® AS count
RETURN ‘关系统计’ AS 检查项, type AS 类型, count AS 数量
ORDER BY count DESC

UNION ALL

// 3. 电影统计
MATCH (m:Movie)
RETURN ‘电影数量’ AS 检查项, count(m) AS 数量, ‘’ AS 类型

UNION ALL

// 4. 演员统计
MATCH (p:Person)-[:ACTED_IN]->(:Movie)
RETURN ‘演员数量’ AS 检查项, count(DISTINCT p) AS 数量, ‘’ AS 类型

UNION ALL

// 5. 检查基努·里维斯
MATCH (keanu:Person {name: ‘基努·里维斯’})-[:ACTED_IN]->(m:Movie)
RETURN ‘基努·里维斯电影数’ AS 检查项, count(m) AS 数量, ‘’ AS 类型

UNION ALL

// 6. 检查黑客帝国系列
MATCH (m:Movie)
WHERE m.title CONTAINS ‘黑客帝国’
RETURN ‘黑客帝国系列电影数’ AS 检查项, count(m) AS 数量, ‘’ AS 类型

// 7. 基努·里维斯演过哪些电影?
MATCH (keanu:Person {name: ‘基努·里维斯’})-[r:ACTED_IN]->(movie:Movie)
RETURN keanu.name AS 演员, movie.title AS 电影, movie.year AS 年份, r.role AS 角色
ORDER BY movie.year

//8.基努·里维斯和哪些演员合作过?
MATCH (keanu:Person {name: ‘基努·里维斯’})-[:ACTED_IN]->(:Movie)<-[:ACTED_IN]-(other:Person)
WHERE other <> keanu
RETURN DISTINCT other.name AS 合作演员, collect(DISTINCT other.name) AS 合作者列表

//9.基努·里维斯 → 电影 → 演员 → 电影 → 导演

MATCH (keanu:Person {name: ‘基努·里维斯’})-[:ACTED_IN]->(movie1:Movie)<-[:ACTED_IN]-(actor:Person)-[:ACTED_IN]->(movie2:Movie)<-[:DIRECTED]-(director:Person)
WHERE actor <> keanu AND movie2 <> movie1
RETURN keanu.name AS 起点,
actor.name AS 演员,
movie2.title AS 电影,
director.name AS 导演
LIMIT 30

//10.可视化:3层关系图
MATCH path = (keanu:Person {name: ‘基努·里维斯’})-[:ACTED_IN]->(m1:Movie)<-[:ACTED_IN]-(actor:Person)-[:ACTED_IN]->(m2:Movie)
WHERE actor <> keanu
RETURN path
LIMIT 50

在这里插入图片描述

//11. 查询基努·里维斯 1-3 层的所有关系,显示为图形
MATCH path = (keanu:Person {name: ‘基努·里维斯’})-[:ACTED_IN|DIRECTED|PRODUCED|COLLABORATED*1…3]-(connected)
WHERE keanu <> connected
RETURN path
LIMIT 100
在这里插入图片描述

//12. 黑客帝国系列完整关系图
MATCH path = (movie:Movie {title: ‘黑客帝国’})-[:SEQUEL_OF*0…3]-(related)
RETURN path
在这里插入图片描述

//13. 基努·里维斯的合作演员网络(含电影节点)
MATCH path = (keanu:Person {name: ‘基努·里维斯’})-[:ACTED_IN]-(movie:Movie)-[:ACTED_IN]-(actor:Person)
WHERE actor <> keanu
RETURN path
LIMIT 50

//14. 沃卓斯基姐妹导演的所有电影及其演员
MATCH path = (director:Person {name: ‘沃卓斯基姐妹’})-[:DIRECTED]-(movie:Movie)<-[:ACTED_IN]-(actor:Person)
RETURN path
LIMIT 100

//15. 显示不同类型的彩色关系
MATCH (keanu:Person {name: ‘基努·里维斯’})-[r]-(connected)
WHERE keanu <> connected
RETURN keanu, r, connected

//16. 从基努·里维斯到所有相关节点的完整路径
MATCH path = (keanu:Person {name: ‘基努·里维斯’})-[*1…4]-(connected)
WHERE keanu <> connected
AND NOT (connected:Genre) // 可选:排除类型节点使图更清晰
AND NOT (connected:Award) // 可选:排除奖项节点
RETURN path
LIMIT 150

//17. 《黑客帝国》的完整关系网(演员、导演、公司、类型、奖项)
MATCH path = (matrix:Movie {title: ‘黑客帝国’})-[r]-(connected)
RETURN path

//18. 查找基努·里维斯到雨果·维文之间的所有路径
MATCH path = shortestPath((keanu:Person {name: ‘基努·里维斯’})-[*]-(hugo:Person {name: ‘雨果·维文’}))
RETURN path

//19. 查找最多 5 层的所有路径
MATCH path = (keanu:Person {name: ‘基努·里维斯’})-[:ACTED_IN|COLLABORATED*1…5]-(hugo:Person {name: ‘雨果·维文’})
RETURN path

//20. 黑客帝国系列的完整产业网络
MATCH path = (movie:Movie)-[:HAS_GENRE|PRODUCED|DIRECTED|ACTED_IN|WON_AWARD]-(connected)
WHERE movie.title CONTAINS ‘黑客帝国’
RETURN path
LIMIT 200
在这里插入图片描述

五、备份

Neo4j‑5.x 社区版执行 neo4j‑admin database dump数据库运行状态下不允许 dump 导出,必须停止 Neo4j 服务;企业版才支持在线 dump。

systemctl stop neo4j
systemctl status neo4j

确认状态为 inactive(dead) 之后再执行导出

neo4j-admin database dump neo4j --to-path=/root/neo4j_backup

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐