快速上手Neo4j图关系数据库

  • 参考视频:

    【IT老齐589】快速上手Neo4j网状关系图库

1 Neo4j简介

  • Neo4j是一个图数据库,是知识图谱的基础

  • 在Neo4j中,数据的基本构建块包括:

    • 节点(Nodes)
    • 关系(Relationships)
    • 属性(Properties)
    • 标签(Labels)

1.1 节点(Nodes)

  • 节点代表现实世界中的实体

1.2 关系(Relationships)

  • 关系连接两个节点
  • 每个关系都有一个方向(从一个节点指向另一个节点),并且可以有属性。

1.3 属性(Properties)

  • 属性是键值对的形式附加到节点或关系上的额外信息。
  • 例如,一个"Person"节点可能有一个名为"name"的属性,其值为"John Doe"。

1.4 标签(Labels)

  • 标签用来分类节点,类似于类目或类型。
  • 例如,可以给所有表示人的节点添加"Person"的标签

2 Cypher查询语言

2.1 基本概念

  • MATCH语句用于查找特定的图模式(即节点和关系的模式)。
  • CREATE语句用于创建新的节点和关系。
  • RETURN语句用于返回查询结果。
  • WHERE子句用于过滤结果集。
  • SET语句用于修改节点或关系的属性。
  • DELETE语句用于删除节点或关系。
  • WITH子句用于在查询的不同部分之间传递结果集。

2.2 Docker快速部署

bash 复制代码
docker run \
  --publish=7474:7474 \
  --publish=7687:7687 \
  --env NEO4J_AUTH=neo4j/12345678 \
  -d \
  --name=test \
  neo4j:5.22.0-community

逐项说明:

  1. docker run:

    一条 docker run 命令完成拉取镜像、创建和启动容器的全部工作,无需提前手动 docker pull 或 docker create

  2. --publish=7474:7474 与 --publish=7687:7687:

    将主机的 7474 端口映射到容器内部的 7474 端口,将主机的 7687 端口映射到容器内部的 7687 端口

    对于 Neo4j 来说,7474 通常是 HTTP 接口,7687 通常是 Bolt 协议接口

    Bolt 是 Neo4j 数据库专门设计的二进制协议,用于客户端与服务器之间的通信

  3. --env NEO4J_AUTH=neo4j/12345678:

    设置环境变量 NEO4J_AUTH 为 neo4j/12345678。这通常用于初始化 Neo4j 时指定默认用户名和密码(neo4j 用户名和 12345678 密码)。

  4. -d:以守护态方式(后台方式)运行容器。

  5. --name=neo4j: 为该容器指定名称 neo4j

  6. neo4j:5.22.0-community:

    使用 neo4j:5.22.0-community 这个镜像来创建容器。若本地无此镜像,docker run 会自动拉取。

2.3 电影图数据库指南

2.3.1 创造 Create

1.CREATE 语句

sql 复制代码
# 1.CREATE 语句:
# 创建带有指定标签和属性的节点
CREATE (n:Label {属性键:属性值, ...})

# CREATE子句允许创建一个或多个节点。
# 每个节点都可以分配标签和属性,多个标签用冒号分隔
CREATE (乔布斯:人类:创始人 {姓名: '乔布斯', 出生年份: 1955, 逝世年份: 2011}), (比尔盖茨:人类:创始人 {姓名: '比尔盖茨', 出生年份: 1955})

# 2.关系(关系类型和属性)
# 使用 (节点1)-[:关系类型 {属性}]->(节点2) 来创建连接两个节点的有向关系。例如:
MATCH (a:人类 {姓名: "乔布斯"}), (b:人类 {姓名: "比尔盖茨"})
CREATE (a)-[:竞争对手 {行业: "计算机"}]->(b)
# 表示首先查找两个节点,然后创建一个从乔布斯到比尔盖茨的竞争对手关系,该关系有一个名为行业的属性

# 清空neo4j里的所有数据
MATCH (n) DETACH DELETE n
2.3.2 查询 Match
sql 复制代码
-- 查询Match
-- 语法是n是一个变量,:Label是一个标签,{属性键:属性值}是一个属性
MATCH (n:Label {属性键:属性值, ...})
RETURN n


-- 查询条件 WHERE(可选):
-- 结果返回 RETURN
MATCH (节点)-[关系]->(其他节点)
WHERE 条件
RETURN 查询结果
相关推荐
Magicdata大数据3 天前
AI辅助教学:调用大模型从教材中生成习题,方便学员练习
java·spring boot·大模型·知识图谱·neo4j·ai辅助教学
涛思数据(TDengine)4 天前
直播预告 | 知识图谱,让文档自动变成知识网络
人工智能·ai·知识图谱·时序数据库·tdengine·工业ai
Rocky Ding*4 天前
【三年面试五年模拟】2026-10-21_零一万物知识图谱算法实习生一面面经全解析
论文阅读·人工智能·深度学习·机器学习·aigc·知识图谱·ai-native
JavaPub-rodert5 天前
王仕宇分享:Oxigraph 是什么?用 Rust + RocksDB 搭一个轻量 RDF/SPARQL 知识图谱数据库
数据库·rust·知识图谱
星川皆无恙7 天前
基于知识图谱的百科问答系统:Django + Neo4j 与实现
人工智能·python·机器学习·自然语言处理·django·知识图谱·neo4j
迪飞特科技8 天前
大模型接入业务系统:API、本地部署、RAG、智能体四种路线怎么选
java·数据库·人工智能·知识图谱·deepseek·本地化大模型
Sayai8 天前
Neo4j 社区版高可用实战:DRBD 块级复制 + Keepalived 虚拟 IP 冷备切换(附启停 SOP 与脑裂防范)
运维·neo4j·keepalived·高可用·drbd
for_ever_love__10 天前
知识图谱构建流水线实战:实体关系抽取的提示词、质量抽检与增量维护
知识图谱·实体·文档·构建·rag·关系·抽取
小何好运暴富开心幸福10 天前
LangChain 与 LangGraph 核心要点总结
深度学习·语言模型·langchain·知识图谱
小蜗子11 天前
Historically Relevant Event Structuring for Temporal Knowledge Graph Reasoning
人工智能·知识图谱