一、Neo4j 图数据库
Neo4j 是一个高性能的、原生的图数据库。它不采用传统的行和列的表格结构,而是使用节点和关系的图结构来存储和管理数据。
1. Neo4j 安装 (macOS Homebrew)
安装了 Homebrew 后直接在终端输入以下命令即可安装。
安装后,Neo4j 浏览器可通过 http://localhost:7474 访问。
登录 Neo4j
-
在登录页面填写信息:
- Connect URL:输入
neo4j://localhost:7687 - Authentication type:保持为 "Username / Password"
- Username:输入
neo4j - Password:首次连接时输入默认密码
neo4j - 点击蓝色的 Connect 按钮
- Connect URL:输入
-
首次连接成功后,系统会强制要求修改默认密码:当前密码
neo4j,设置一个新的安全密码(请务必记住)。 -
测试连接:连接成功后,在顶部的命令行中输入 Cypher 查询语句,例如:
RETURN 'Hello World';
2. Neo4j 快速入门
- 点击左边栏的星星图标,在 Example Graphs 中选择 Movie Graph,点击运行,就会弹出一个关于电影图谱的教程。
- 创建图谱:点击灰色代码框,创建图谱的代码会自动复制到代码框,点击运行即可看到创建的电影图谱。
- 查找:支持查找特定演员、电影标题、人数及上映年代等。
- 询问:后续还有一些查询语句教程,感兴趣的同学可以自行运行。
3. Neo4j 基本操作
接下来以麦当劳为背景,用 Neo4j 的 Cypher 查询语言演示基本增删改查操作。建立一个简单的图谱,包含两种节点和一种关系:
- 节点类型 1:餐厅(属性:名称,地址,开业年份)
- 节点类型 2:产品(属性:名称,价格,类别)
- 关系类型:供应(属性:自何时起供应)
1. 增操作
- 创建节点
- 创建关系
2. 查操作
- 查找所有餐厅
- 查找特定餐厅供应的所有产品
- 查找供应可乐的所有餐厅
- 多跳查询:查找与 MC 销售同类产品的其他餐厅
- 路径查询:查找两家餐厅通过共同产品产生的关联
3. 改操作
- 更新节点属性
- 新增节点属性
- 更新关系属性
4. 删操作
- 删除关系
- 删除节点(必须先删除其所有关系)
- 删除所有节点
通过以上例子可以看到 Neo4j 的操作非常直观:
- CREATE/MERGE:对应 SQL 的 INSERT,用于创建节点和关系。
- MATCH:对应 SQL 的 SELECT ... FROM,是查询的起点,用于定位图形中的模式。
- WHERE:对应 SQL 的 WHERE,用于过滤结果。
- SET:对应 SQL 的 UPDATE,用于更新属性。
- DELETE/DETACH DELETE:对应 SQL 的 DELETE,用于删除元素。
Neo4j 的核心优势在于通过 MATCH 子句描述关联模式,这使得查询复杂的关系网络变得简单和高效。


