快速上手Neo4j图关系数据库

server/2024/12/15 4:52:43/
  • 参考视频:

    【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快速部署

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 语句

# 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
-- 查询Match
-- 语法是n是一个变量,:Label是一个标签,{属性键:属性值}是一个属性
MATCH (n:Label {属性键:属性值, ...})
RETURN n-- 查询条件 WHERE(可选):
-- 结果返回 RETURN
MATCH (节点)-[关系]->(其他节点)
WHERE 条件
RETURN 查询结果

http://www.ppmy.cn/server/150263.html

相关文章

抖音后端实习一面总结

置之死地而后生 抖音后端开发实习一面 自我介绍 你参加了PAT比赛?介绍一下? 平时有刷题吗?有的,那来做一下算法题目吧,单词拆分(动态规划1h过去了...) TCP有哪些状态?每种状态代表…

【3】数据分析基础(Numpy的计算)

在学习了N维数组的概念、常用属性以及如何创建一个N维数组后,我们来继续学习N维数组的计算。 我们将会从2个方向学习N维数组的计算: 1. 数组和数的计算 2.相同形状数组的计算 1. 数组和数的计算当数组和数字进行计算的时候,NumPy会将该数字的…

【开源免费】基于SpringBoot+Vue.JS渔具租赁系统(JAVA毕业设计)

本文项目编号 T 005 ,文末自助获取源码 \color{red}{T005,文末自助获取源码} T005,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 渔…

基于多视角深度学习技术的乳腺X线分类:图神经网络与Transformer架构的研究|文献速递-生成式模型与transformer在医学影像中的应用速递

Title 题目 Mammography classification with multi-view deep learning techniques:Investigating graph and transformer-based architectures 基于多视角深度学习技术的乳腺X线分类:图神经网络与Transformer架构的研究 01 文献速递介绍 乳腺X线检查是乳腺癌…

【C++】继承和派生(超级详细版)

文章目录 继承概念定义格式单继承和多继承继承权限 派生派生类的构成派生类的默认成员函数①构造函数②拷贝构造函数③赋值运算符重载函数④析构函数 派生类的特殊成员函数①友元函数②静态函数 派生类的内存大小 派生类和基类的关系复杂的菱形继承及菱形虚继承 继承是面向对象…

大模型:把GPT搬回家 - chatGPT的本地化API -Node.js调用

chatGPT拒绝了中国大陆和中国香港的访问,包括api的调用。这使得我们无法使用目前来讲确实YYLX的生产工具,仔细想一下其实还是可以曲线解决的,本文的介绍仅供学习参考。 用Node.jschatGPT提供的API,就可以在自己本地或者自己的服务…

Hadoop删除HDFS文件

在 Hadoop 的命令行工具中,hadoop fs -rm 命令用于删除 HDFS(Hadoop Distributed File System)中的文件或目录。-r 和 -f 是该命令的两个不同选项,它们各自有不同的功能和行为。 ### hadoop fs -rm -r - **选项 -r**&#xff1a…

引用类型集合的深拷贝,无需手动写循环:Apache Commons Lang (SerializationUtils)

在java中,我们如果想要对引用类型的集合进行深拷贝。有一种方式,就是调用SerializationUtils Apache Commons Lang (SerializationUtils) Apache Commons Lang 提供了 SerializationUtils 类,可以利用 Java 的序列化机制来进行集合及其元素…