快速上手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 pulldocker 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_AUTHneo4j/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 查询结果
相关推荐
KG_LLM图谱增强大模型17 小时前
[500页电子书]构建自主AI Agent系统的蓝图:谷歌重磅发布智能体设计模式指南
人工智能·大模型·知识图谱·智能体·知识图谱增强大模型·agenticai
高洁012 天前
具身智能-视觉语言导航(VLN)
深度学习·算法·aigc·transformer·知识图谱
2501_941823372 天前
Java高性能图像识别与TensorFlow实战分享:深度学习模型部署与优化经验
neo4j
松岛雾奈.2303 天前
深度学习--TensorFlow框架使用
深度学习·tensorflow·neo4j
艾斯比的日常3 天前
Neo4j 完全指南:从核心特性到 Java 实战(附企业级应用场景)
java·开发语言·neo4j
KG_LLM图谱增强大模型4 天前
[经典之作]大语言模型与知识图谱的融合:通往智能未来的路线图
人工智能·大模型·知识图谱·graphrag·本体论·图谱增强大模型
高洁014 天前
【无标具身智能-多任务与元学习】
神经网络·算法·aigc·transformer·知识图谱
陈天伟教授4 天前
基于学习的人工智能(3)机器学习基本框架
人工智能·学习·机器学习·知识图谱
hai-chu5 天前
将 Neo4j 安装为 macOS 服务
macos·策略模式·neo4j
斯文~6 天前
【AI论文速递】SymAgent:知识图谱复杂推理的agent框架
人工智能·深度学习·llm·nlp·知识图谱