Logo
Section 1 / 2

Neo4j 简介

探索 Neo4j 图数据库,学习如何在 Neo4j 中创建和查询节点与关系。

检查点

Neo4j 简介

探索 Neo4j 图数据库,学习如何在 Neo4j 中创建和查询节点与关系。

...
Neo4j 图数据库

安装 Neo4j Python 驱动的命令

1pip install neo4j

导入 Neo4j 模块

1from neo4j import GraphDatabase

连接到 Neo4j 实例

1connection_uri = "" # Neo4j 实例的连接 URI(Bolt URL) 2username = "" # Neo4j 账户用户名 3password = "" # Neo4j 账户密码 4driver = GraphDatabase.driver(connection_uri, auth=(username, password))

开启会话以执行查询

1with driver.session() as session: 2 result = session.run(query) 3driver.close()
...
实体及其之间的关系

在 Neo4j 中创建节点

1CREATE (EmperorShahJahan:Person {name: 'Shah Jahan', aged: '74'})

在 Neo4j 中创建另一个节点

1CREATE (TajMahal:Monument {name: "Taj Mahal"})

如果这两个实体之间已存在类型为 RELATION 的关系,则会新增一条相同的关系,导致出现重复

1CREATE (TajMahal)-[:RELATION {name: 'BUILT_BY', year: 1643}]->(EmperorShahJahan)

如果两个节点已存在,则不会创建新节点

1MERGE (EmperorShahJahan:Person {name: 'Shah Jahan', aged: '74'}) 2MERGE (TajMahal:Monument {name: "Taj Mahal"})

MERGE 可避免在相同节点间创建重复的关系

1MERGE (TajMahal)-[:RELATION {name: 'BUILT_BY', year: 1643}]->(EmperorShahJahan)

代码示例

1MATCH (TajMahal:Monument {name: 'Taj Mahal'}), (EmperorShahJahan:Person {name: 'Shah Jahan'}) 2MERGE (TajMahal)-[:RELATION {name: 'BUILT_BY', year: 1643}]->(EmperorShahJahan)

No configuration found for ID: 9819f2883d4b51425bbbcbc8de32fdbae9cf54d5526869adf45451099f2ca472

Cypher 查询:获取 Neo4j 实例中所有实体及关系

1MATCH (n)-[r]->(m) 2RETURN n, r, m

No configuration found for ID: fea9ecd88672e8c3b5f24bf0726db46c2124a9d2811c3c022ff234cae9423a86

...
在 Neo4j 工作区预览页面上对构建的知识图谱进行更优可视化展示

Cypher 查询:查找特定实体及其与其他实体的关系

1MATCH (n {name: 'Taj Mahal'})-[r]->(m) 2RETURN n, r, m

No configuration found for ID: 5c94ca64429bb6c9ca5ebc55adb6e07cc34d2122ceb477a48ddfec53488ed4e7

Cypher 查询:查找并删除特定关系

1MATCH ()-[r:RELATION {name: 'BUILT_BY'}]->() 2DELETE r

Cypher 查询:删除节点及其关联的所有关系

1MATCH (n:Person {name: 'Shah Jahan'}) 2DETACH DELETE n

Cypher 查询:删除所有关系

1MATCH ()-[r]->() 2DELETE r

Cypher 查询:删除所有节点和关系

1MATCH (n) 2DETACH DELETE n

No configuration found for ID: a40d26bb87b13d9c87ac9c643f473ede5d38faacff1b104142377d6a133944d1

Quiz

单选题

在 Neo4j 的属性图模型中,节点代表什么?

1 / 7

构建知识图谱

将大语言模型提取的实体和关系存储到Neo4j中