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

news2024/12/26 19:36:32

目录

一、安装前提条件

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语句可以对节点、关系、标签和属性进行创建icon-default.png?t=O83Ahttps://www.cnblogs.com/zhaohuanhuan/p/10637640.html应对 Google Play 政策违规:开发者账号被终止解除指南-CSDN博客文章浏览阅读892次,点赞59次,收藏43次。由于开发人员的疏忽,移除了读写权限的动态申请,使得应用的出现违规操作,接收到违规通知,从而导致开发者账号被终止。https://shuaici.blog.csdn.net/article/details/144084773

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2254546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux centOS 7 安装 rabbitMQ

1.安装前需要了解,rabbitmq安装需要先安装erlang,特别注意的是erlang与rabbitmq的版本之间需要匹配。 el/7/rabbitmq-server-3.10.0-1.el7.noarch.rpm - rabbitmq/rabbitmq-server packagecloud 3.10版本的rabbitmq 对于erlang的版本要求可以看此连接…

SpringBoot整合Mockito进行单元测试超全详细教程 JUnit断言 Mockito 单元测试

Mock概念 Mock叫做模拟对象,即用来模拟未被实现的对象可以预先定义这个对象在特定调用时的行为(例如返回值或抛出异常),从而模拟不同的系统状态。 导入Mock依赖 pom文件中引入springboot测试依赖,spring-boot-start…

QT 中 sqlite 数据库使用

一、前提 --pro文件添加sql模块QT core gui sql二、使用 说明 --用于与数据库建立连接QSqlDatabase--执行各种sql语句QSqlQuery--提供数据库特定的错误信息QSqlError查看qt支持的驱动 QStringList list QSqlDatabase::drivers();qDebug()<<list;连接 sqlite3 数据库 …

微信小程序配置less并使用

1.在VScode中下载Less插件 2.在微信小程序中依次点击如下按钮 选择 从已解压的扩展文件夹安装… 3.选中刚在vscode中下载安装的插件文件 如果没有修改过插件的安装目录&#xff0c;一般是在c盘下C:\用户\用户名.vscode\extensions\mrcrowl.easy-less-2.0.2 我的路径是&#xf…

ClouderaManager 集群搭建

前提&#xff1a;服务器之前做过域名映射、免密登录 ClouderaManager 集群 1. 组件分布规划 服务器服务器h1zk、hdfs(dn)、yarn(nm)、spark、kafka、flumeh2hdfs(nn-standy)、yarn(rm-active)、sparkh3hdfs(nn-active)、yarn(rm-standy)、hive、sparkh4zk、hdfs(dn)、yarn(n…

OpenHarmony-3.HDF框架(2)

OpenHarmony HDF 平台驱动 1.平台驱动概述 系统平台驱动框架是系统驱动框架的重要组成部分&#xff0c;它基于HDF驱动框架、操作系统适配层(OSAL, operating system abstraction layer)以及驱动配置管理机制&#xff0c;为各类平台设备驱动的实现提供标准模型。 系统平台驱动(…

Guiding a Diffusion Model with a Bad Version of Itself

Guiding a Diffusion Model with a Bad Version of Itself Abstract1. Introduction2. Background3. Why does CFG improve image quality?Score matching leads to outliers.CFG 消除异常值Discussion 4 Our method Abstract 在图像生成扩散模型中&#xff0c;主要关注的轴心…

Tomcat,javaweb, servlet , springBoot

在server.xml里配置服务器 <scope>provided</scope>打包的时候&#xff0c;这个jar包不会被打进去&#xff0c;因为tomcat已将封装了这个jar包&#xff0c;没必要要这个

D614 PHP+MYSQL +失物招领系统网站的设计与现 源代码 配置 文档

失物招领系统 1.摘要2. 系统开发的背景和意义3.功能结构图4.界面展示5.源码获取 1.摘要 随着互联网的迅速发展&#xff0c;人们的生产生活方式逐渐发生改变&#xff0c;传统的失物招领也可以通过网络处理。本网站是基PHP技术的一款综合性较强的西南民族大学PHP失物招领系统。 …

单总线one-Wire

单总线one-Wire 概述 One-Wire总线是DALLAS公司研制开发的一种协议 特点&#xff1a; 它是由一个总线主节点&#xff0c;一个或多个从节点组成系统&#xff0c;通过一根信号线对从芯片进行数据的读取 每一个符合One-Wire协议的从芯片都有一个唯一的地址&#xff0c;包括48位的…

【llm】——香橙派AIPRO跑qwen2.5-0.5B

qwen2在Ascend310B4上的评测 代码/模型&#xff1a;https://github.com/chenjun2hao/qwen-ascend-llm 依赖 香橙派AIPRO&#xff1a;http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-AIpro.htmlCANN8.0&#xff08;自己手动安装的&#…

Android 单元测试断言校验方法 org.junit.Assert

判断布尔值 assertTrue assertFalse 判断对象非空 assertNull(object); 案例&#xff1a; PersistableBundle result Util.getCarrierConfig(mockContext, subId);assertNull(result); 判断是否相等 assertEquals("mocked_string", result.toString()); package or…

Flink 中双流 Join 的深度解析与实战

目录 一、Join 算子 一&#xff09;语义与特性 二&#xff09;通用用法 三&#xff09;不同窗口类型表现 滚动窗口 Join 滑动窗口 Join 二、CoGroup 算子 一&#xff09;功能特点 二&#xff09;通用用法与连接类型实现 内连接&#xff08;InnerJoin&#xff09; 左…

OpenStack-Glance组件

Glance Glance使用磁盘格式和容器格式基础配置镜像转换 Glance 是 OpenStack 的镜像服务&#xff0c;负责存储、发现和管理虚拟机镜像。它允许用户创建和共享镜像&#xff0c;用于启动虚拟机实例。 Glance 的主要功能 &#xff08;1&#xff09;虚拟机镜像的管理 支持镜像的上…

基于神经网络的弹弹堂类游戏弹道快速预测

目录 一、 目的... 1 1.1 输入与输出.... 1 1.2 隐网络架构设计.... 1 1.3 激活函数与损失函数.... 1 二、 训练... 2 2.1 数据加载与预处理.... 2 2.2 训练过程.... 2 2.3 训练参数与设置.... 2 三、 测试与分析... 2 3.1 性能对比.... 2 3.2 训练过程差异.... 3 四、…

Linux入门攻坚——40、Linux集群系统入门-lvs(1)

Cluster&#xff0c;集群&#xff0c;为了解决某个特定问题将多台计算机组合起来形成的单个系统。 这个单个集群系统可以扩展&#xff0c;系统扩展的方式&#xff1a;scale up&#xff0c;向上扩展&#xff0c;更换更好的主机&#xff1b;scale out&#xff0c;向外扩展&…

威联通-001 手机相册备份

文章目录 前言1.Qfile Pro2.Qsync Pro总结 前言 威联通有两种数据备份手段&#xff1a;1.Qfile Pro和2.Qsync Pro&#xff0c;实践使用中存在一些区别&#xff0c;针对不同备份环境选择是不同。 1.Qfile Pro 用来备份制定目录内容的。 2.Qsync Pro 主要用来查看和操作文…

Docker单机网络:解锁本地开发环境的无限潜能

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言&#…

【Linux操作系统】多线程控制(创建,等待,终止、分离)

目录 一、线程与轻量级进程的关系二、进程创建1.线程创建线程创建函数&#xff08;pthread&#xff09;查看和理解线程id主线程与其他线程之间的关系 三、线程等待&#xff08;回收&#xff09;四、线程退出线程退出情况线程退出方法 五、线程分离线程的优点线程的缺点 一、线程…

解决IDEA的easycode插件生成的mapper.xml文件字段之间逗号丢失

问题 easycode插件生成的mapper.xml文件字段之间逗号丢失&#xff0c;如图 解决办法 将easycode(在settings里面的othersettings)设置里面的Template的mapper.xml.vm和Global Config的mybatisSupport.vm的所有$velocityHasNext换成$foreach.hasNext Template的mapper.xml.vm(…