Neo4j 图数据库安装与操作指南(以mac为例)

Neo4j 图数据库安装与操作指南(以mac为例)

目录

一、安装前提条件

1.1 Java环境

1.2 Homebrew(可选)

二、下载并安装Neo4j

2.1 从官方网站下载

2.1.1 访问Neo4j的官方网站

2.1.2 使用Homebrew安装

三、配置Neo4j

3.1 设置环境变量(可选)

3.2 打开配置文件(bash_profile)

3.2.1 打开终端

3.2.2 使用open命令和默认文本编辑器(如TextEdit) 

3.2.3 使用nano编辑器

3.2.4 使用图形界面和文本编辑器

四、启动 Neo4j

4.1 neo4j start

4.2 绝对路径 start

五、创建一个简单的图

5.1 创建节点/关系

5.1.1 创建节点并给节点(n)分配一个属性(name)

 5.1.2 创建节点并分配属性和标签(Person)

5.1.3 批量创建节点

5.1.4 创建一个关系

5.2 修改节点/关系

5.2.1 为节点添加属性

5.2.2 为节点添加标签

5.3 匹配(查找)节点/关系

5.3.1 根据属性匹配节点信息

5.3.2 根据标签和属性匹配节点信息

 5.3.3 匹配任意节点

 5.3.4 匹配任意关系

5.3.5 匹配字符串的开头

5.3.6 匹配字符串的末尾

5.3.7 匹配字符串的包含匹配

5.3.8 字符串排除匹配 

5.4 删除节点/关系/表

5.4.1 删除节点属性

5.4.2 删除节点标签

5.4.3 删除节点

5.4.4 删除关系

5.4.5 删除关系及节点

5.4.6 删除节点所有关系

5.4.7 删除所有节点和关系

5.4.7 删除所有节点

六、Neo4j其他命令

相关推荐


        Neo4j 是一种高性能的图数据库,用于存储和查询图形数据。它适合于社交网络分析、推荐系统、知识图谱等场景。

一、安装前提条件

1.1 Java环境

        Neo4j需要Java运行环境来运行,因此首先需要安装JDK。可以从Oracle官网或OpenJDK网站下载并安装适合Mac的JDK版本。假设你选择的是 Neo4j 5.25.1 ,应使用JDK 17或更高版本,选择的是 Neo4j 4.4.39,应使用JDK 11。

1.2 Homebrew(可选)

        Homebrew是Mac上的一个包管理器,可以简化安装和管理软件的过程。如果你还没有安装Homebrew,可以通过在终端中输入以下命令来安装:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

二、下载并安装Neo4j

        需要翻越那道无形之墙。

2.1 从官方网站下载

2.1.1 访问Neo4j的官方网站

        访问Neo4j的官方网站(最新版本):Neo4j Download,这里下载到的是桌面版,版本一般都是最新的,作者选择的是下面的方式,而不是使用桌面端。

      访问Neo4j的官网下载  Graph Database,选择 Graph Database 后,向下滑动,根据当前配置选择你自己的版本,如下图:

        因需要执行的 python 文件应用了一个函数,5.x 不支持,这里选择了更为合适的4.4.39,下载并解压缩。

        然后你在该文件夹下就可以执行 neo4j 命令了。

2.1.2 使用Homebrew安装

        打开终端,输入以下命令来安装Neo4j:

brew install neo4j

        安装完成后,Neo4j的可执行文件通常位于/usr/local/opt/neo4j/bin目录下。

三、配置Neo4j

3.1 设置环境变量(可选)

        如果你打算从命令行启动Neo4j服务,你可能需要将其可执行文件的路径添加到你的系统PATH环境变量中。通常,Neo4j的可执行文件位于:

  • Neo4j 桌面端:/Applications/Neo4j/Desktop.app/Contents/Resources/app/bin目录下。
  • 非桌面端:你解压保存的路径/bin目录下。

        你可以通过以下方式将其添加到PATH中(这里以bash shell为例):

export PATH="/Applications/Neo4j Desktop.app/Contents/Resources/app/bin:$PATH"

        将上述命令添加到你的~/.bash_profile~/.zshrc文件中(取决于你使用的shell),然后运行source ~/.bash_profilesource ~/.zshrc来使其生效。

3.2 打开配置文件(bash_profile)

        这个可以忽略,作者每次打配置文件都要去百度搜索,因此在这里记录一下,以后直接看自己的博客,也方便随时修正。

3.2.1 打开终端

        你可以通过Spotlight搜索(按下Command + 空格,然后输入“Terminal/终端”并回车)来打开终端

3.2.2 使用open命令和默认文本编辑器(如TextEdit) 
open -e ~/.bash_profile

        这会使用你的默认文本编辑器(如TextEdit)打开文件。注意,TextEdit在打开纯文本文件时可能会以富文本格式显示,这可能会导致格式问题。为了避免这种情况,你可以在TextEdit中打开文件后,立即按Command + Shift + T切换到纯文本模式。     

3.2.3 使用nano编辑器
nano ~/.bash_profile

        这会打开~/.bash_profile文件,你可以在nano编辑器中进行编辑。完成后,按Control + O保存文件,然后按Enter确认文件名,最后按Control + X退出编辑器。   

3.2.4 使用图形界面和文本编辑器

        导航到你的用户目录,然后启用显示隐藏文件的选项(在Finder中按下Command + Shift + .可以切换显示/隐藏隐藏文件)最后找到并打开.bash_profile.save。选择文本编辑器直接修改保存即可。建议在完成操作后立即再次按下Command + Shift + .来隐藏这些文件(要不太乱了,看着也不舒服)。

四、启动 Neo4j

4.1 neo4j start

        如果你使用Homebrew安装了Neo4j,或者已经将Neo4j的可执行文件路径添加到PATH中,你可以在终端中输入命令 neo4j start 启动 Neo4j:

MacBook-Pro:~ scc$ neo4j start Directories in use: home: /Users/scc/AUserProjects/neo4j-community-4.4.38 config: /Users/scc/AUserProjects/neo4j-community-4.4.38/conf logs: /Users/scc/AUserProjects/neo4j-community-4.4.38/logs plugins: /Users/scc/AUserProjects/neo4j-community-4.4.38/plugins import: /Users/scc/AUserProjects/neo4j-community-4.4.38/import data: /Users/scc/AUserProjects/neo4j-community-4.4.38/data certificates: /Users/scc/AUserProjects/neo4j-community-4.4.38/certificates licenses: /Users/scc/AUserProjects/neo4j-community-4.4.38/licenses run: /Users/scc/AUserProjects/neo4j-community-4.4.38/run Starting Neo4j. Started neo4j (pid:14617). It is available at http://localhost:7474 There may be a short delay until the server is ready.

4.2 绝对路径 start

        未添加PATH,可通过可执行文件的确切位置,你可以使用完整路径来启动它:

MacBook-Pro:~ scc$ /Users/scc/AUserProjects/neo4j-community-4.4.38/bin/neo4j start Directories in use: home: /Users/scc/AUserProjects/neo4j-community-4.4.38 xxxxxx run: /Users/scc/AUserProjects/neo4j-community-4.4.38/run Starting Neo4j. Started neo4j (pid:14649). It is available at http://localhost:7474 There may be a short delay until the server is ready.

        如上命令就是启动成功 进程编号都告诉你了,并且可以通过Neo4j的Web界面(任意浏览器)访问http://localhost:7474,使用默认的用户名neo4j和密码neo4j(首次登录后系统会提示更改密码)。

五、创建一个简单的图

        Neo4j的Cypher查询语言是一套用于构建、查询和操作图数据库的声明式语言。

        在 Neo4j 中,图是由节点(Node)、关系(Relationship)和属性(Property)组成的。我们可以创建一个简单的图来练习 Cypher 查询。

5.1 创建节点/关系

5.1.1 创建节点并给节点(n)分配一个属性(name)

        CREATE (n {name:"曹操"})

        这就表示我们创建成功了,在左侧 Node labels 中未发现该节点。我们执行查询节点是能操作到的,如下图:

 5.1.2 创建节点并分配属性和标签(Person)

        CREATE (p:Person{name:"曹操"})

         执行完后,你就可以看到左侧节点列表有数据了,还包括我们之前创建的节点。

5.1.3 批量创建节点

        UNWIND是一种操作,用于将列表中的元素解构为多行。它允许按行访问和处理列表中的每个元素,更多地用于数据导入、转换和过滤等场景。

        无标签

UNWIND [{name: '张辽'}, {name: '关羽'}] AS myNodes

CREATE (n) SET n = myNodes

       有标签:如果我们只处理统一标签(Person)节点,我们可以这样的:

UNWIND [{name: '貂蝉'}, {name: '吕布'}] AS myNode

CREATE (n:Person {name: myNode.name})

5.1.4 创建一个关系

        给已经存在的两个节点创建一个关系。

MATCH (a:Person),(b:Person)
WHERE a.name = '吕布' AND b.name = '貂蝉'
CREATE (a)-[r:妻子]->(b)
RETURN r

5.2 修改节点/关系

5.2.1 为节点添加属性

MATCH (n {name:'吕布'})
SET n.age=18
RETURN n

5.2.2 为节点添加标签

MATCH (n{name:'关羽'}) SET n:Person RETURN n

5.3 匹配(查找)节点/关系

        Cypher 的 MATCH 语句和 SQL 的 SELECT 语句类似,都是查询数据的表达式。而Cypher语句中的 WHERE 和 SQL 语句中的 WHERE 语句由这相同的作用,其作用是用来过滤匹配结的,在Cypher 语句中 WHERE 是在 MATCH、OPTIONAL MATCH、WITH 或 START 语句中使用的过滤限定语句。

匹配语句结构

  • [MATCH WHERE]
  • [OPTIONAL MATCH WHERE]
  • [WITH [ORDER BY] [SKIP] [LIMIT]]
  • RETURN [ORDER BY] [SKIP] [LIMIT]

5.3.1 根据属性匹配节点信息

MATCH (n{name:"吕布"}) RETURN n

MATCH (n{age:18}) RETURN n

5.3.2 根据标签和属性匹配节点信息

MATCH (n:Person{name:"吕布"}) RETURN n

 5.3.3 匹配任意节点

MATCH (n) RETURN n

 5.3.4 匹配任意关系

MATCH p = (n)-[r]->(m) RETURN p

5.3.5 匹配字符串的开头

MATCH (n)

WHERE n.name STARTS WITH '吕'

RETURN n

5.3.6 匹配字符串的末尾

MATCH (n)

WHERE n.name ENDS WITH '布'

RETURN n

5.3.7 匹配字符串的包含匹配

MATCH (n)

WHERE n.name CONTAINS WITH '吕'

RETURN n

5.3.8 字符串排除匹配 

MATCH (n)

WHERE NOT n.name STARTS WITH '吕'

RETURN n

        其他还有很多,如字符串正则表达式等,就不一一列举了。

5.4 删除节点/关系/表

5.4.1 删除节点属性

MATCH (n{name:'夏侯淳'}) remove n.age RETURN n
  • MATCH语句用于找到满足条件的节点。在这里,它查找所有标签为Person且属性name值为"'夏侯淳'"的节点。 

5.4.2 删除节点标签

MATCH (n{name:'夏侯淳'}) REMOVE n:Person RETURN n

5.4.3 删除节点

MATCH (p:Person {name: '夏侯淳'})

DELETE p
  • DELETE语句用于删除找到的节点。由于Neo4j中的关系是基于节点的,因此删除节点也会删除与该节点相连的所有关系。

5.4.4 删除关系

        仅删除a=>b关系(所有),保留节点。

MATCH (a)-[r]->(b)
WHERE a.name = '节点A的名称' AND b.name = '节点B的名称'
DELETE r



MATCH (a)-[r]->(b)

WHERE a.name = '吕布' AND b.name = '貂蝉'

DELETE r

5.4.5 删除关系及节点

        删除关系以及至少一端没有其他关系的节点。

MATCH (a)-[r]->(b)
WHERE a.name = '节点A的名称' AND b.name = '节点B的名称'
DETACH DELETE r

5.4.6 删除节点所有关系

        删除节点ab以及它们与其他任何节点之间的所有关系。

MATCH (a), (b)
WHERE a.name = '节点A的名称' AND b.name = '节点B的名称'
DELETE a, b

5.4.7 删除所有节点和关系

        如果你想要清空整个图数据库,可以删除所有的带有关系的节点及关系。但请注意,这是一个非常危险的操作,因为它会永久删除所有数据。

        独立没有关系的节点会被保留下来。

MATCH (n)-[r]-()
DELETE n, r

5.4.7 删除所有节点

        如果你想要清空整个图数据库,可以删除所有的节点。但请注意,这是一个非常危险的操作,因为它会永久删除所有数据。

MATCH (n) DELETE n          

六、Neo4j其他命令

        查询版本:neo4j --version

        服务状态:neo4j status

        重启服务:neo4j restart

        停止服务:neo4j stop

        卸载:brew uninstall neo4j

        删除数据和配置文件:rm -rf /usr/local/var/neo4j

相关推荐

Neo4j之Cypher学习总结Cypher 语句 Cypher是图形数据库Neo4j的声明式查询语言。 Cypher语句规则和具备的能力: Cypher通过模式匹配图数据库中的节点和关系,来提取信息或者修改数据。 Cypher语句中允许使用变量,用来表示命名、绑定元素和参数。 Cypher语句可以对节点、关系、标签和属性进行创建https://www.cnblogs.com/zhaohuanhuan/p/10637640.html应对 Google Play 政策违规:开发者账号被终止解除指南-ZEEKLOG博客文章浏览阅读892次,点赞59次,收藏43次。由于开发人员的疏忽,移除了读写权限的动态申请,使得应用的出现违规操作,接收到违规通知,从而导致开发者账号被终止。https://shuaici.blog.ZEEKLOG.net/article/details/144084773

Read more

在线视频播放器YT-DLP Web Player

在线视频播放器YT-DLP Web Player

简介 什么是 YT-DLP Web Player ? YT-DLP Web Player 是一个开源的在线视频播放器,基于强大的 yt-dlp 引擎。它可以帮助用户直接在浏览器中播放来自各种视频网站的内容,无需下载即可在线观看。 主要特点 * 多平台支持:基于 yt-dlp,支持 YouTube、Bilibili 等众多视频平台 * 画质选择:支持视频分辨率选择、字幕选择和宽高比调整 * 视频下载:提供视频下载功能,方便离线观看 * PWA 支持:支持 Progressive Web App,可安装到手机桌面,Android 支持"分享到"功能 * 视频搜索:内置视频搜索功能,无需离开界面即可查找内容 * 主题定制:支持自定义主题颜色和 AMOLED 深色背景 * SponsorBlock 集成:

GLM-Image WebUI高级功能解析:随机种子复现、负向提示词过滤、批量生成技巧

GLM-Image WebUI高级功能解析:随机种子复现、负向提示词过滤、批量生成技巧 1. 为什么需要深入理解这些高级功能 很多人第一次用GLM-Image WebUI时,输入一段描述就点击生成,结果发现每次出来的图都不一样,有的细节丰富,有的却模糊失真;或者明明写了“高清”“8k”,生成的图还是不够理想;更常见的是,想批量做一组风格统一的图,却要反复粘贴提示词、手动调整参数、一张张保存——效率低得让人想放弃。 其实,这些问题背后都藏着三个被低估的关键控制点:随机种子的确定性机制、负向提示词的精准过滤能力、以及批量生成的工程化组织方式。它们不是锦上添花的“高级选项”,而是决定你能否稳定产出高质量图像的核心杠杆。 本文不讲安装部署,也不重复基础操作。我们直接切入WebUI里最常被忽略、但实际使用频率最高的三个功能模块,用真实场景+可验证操作+避坑经验,带你把GLM-Image WebUI真正用熟、用稳、用出生产力。 2. 随机种子:从“碰运气”到“可复现”的关键开关 2.

军工科研平台如何用WebUploader+PHP实现实验数据的分片加密续传?

前端老哥的“懒人”大文件上传方案(Vue3+原生JS) 兄弟们!我是辽宁一名“头发没秃但代码量秃”的前端程序员,最近接了个外包活——给客户做文件管理系统,核心需求就仨字儿:“稳、省、兼容”!客户拍着桌子说:“20G大文件、文件夹上传下载、加密、断点续传,预算100块,你看着办!” 我揉着太阳穴想:“行吧,谁让我爱交朋友呢?今天把这系统的‘压箱底’代码扒给你,再送你份‘保姆级’文档,保证你直接交给客户,收钱不慌!” 一、需求拆解(客户的“魔鬼”要求,我用“懒人”方案搞定) 先给大伙儿捋捋客户的“奇葩”需求(其实是行业真实痛点): * 大文件上传:20G!比我家冰箱还沉(我家冰箱100斤)。 * 文件夹上传下载:

前端Canvas:让你的网站更具视觉冲击力

前端Canvas:让你的网站更具视觉冲击力 毒舌时刻 前端Canvas?这不是游戏开发才用的吗? "Canvas性能差,我不用"——结果错过了丰富的视觉效果, "Canvas太复杂了,我学不会"——结果只能用静态图片, "我用CSS就够了,要Canvas干嘛"——结果无法实现复杂的动画效果。 醒醒吧,Canvas不是游戏开发的专利,前端也可以用它来创建丰富的视觉效果! 为什么你需要这个? * 丰富的视觉效果:创建动态图形、动画和游戏 * 高性能:直接操作像素,性能优异 * 交互性:支持鼠标、触摸等交互 * 数据可视化:绘制图表、仪表盘等 * 跨平台:在所有现代浏览器中运行 反面教材 // 反面教材:简单的Canvas绘制 function drawCircle() { const canvas = document.getElementById('canvas'