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语句可以对节点、关系、标签和属性进行创建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.mzph.cn/web/61663.shtml

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

相关文章

无人机主控芯片技术与算法详解!

一、无人机主控芯片核心技术 高性能CPU: 无人机需要高性能的CPU来处理复杂的飞行控制算法、图像处理和数据传输等任务。目前,无人机的CPU主要有大疆自研的飞控系统、高通提供的无人机设计平台Snapdragon Flight,以及基于开源平台APM、Px4等…

基于python的汽车数据爬取数据分析与可视化

一、研究背景 基于提供的代码片段和讨论,我们可以得出一个与网络抓取、数据处理和数据可视化相关的研究背景,该背景涉及到汽车行业。以下是研究背景的陈述: "在迅速发展的汽车行业中,准确和及时的数据对各方利益相关者至关…

JAVA:Springboot 集成 WebSocket 和 STOMP 实时消息的技术指南

1、简述 随着互联网应用的复杂性和实时性需求的增加,传统的 HTTP 请求响应模式已不能满足某些场景的需求。WebSocket 和 STOMP 协议为构建实时消息传输提供了极大的便利。本文将介绍如何在 Spring Boot 中使用 WebSocket 和 STOMP 创建一个实时消息应用&#xff0c…

Kafka2.2.0集群安装

Kafka2.2.0 三节点集群搭建 Kafka2.2.0 基于zookeeper搭建,这里也搭建一个三个节点的集群。(在一个节点模拟三节点,真实的三节点把ip替换一下即可,按照hadoop案件把网络打通即可) 1、下载解压 Kafka 安装包官方下载地址 ,本用例…

AD软件如何快速切换三维视图,由2D切换至3D,以及如何恢复

在Altium Designer软件中,切换三维视图以及恢复二维视图的操作相对简单。以下是具体的步骤: 切换三维视图 在PCB设计界面中,2D切换3D,快捷键按住数字键盘中的“3”即可切换; 快捷键ctrlf(或者vb快捷键也…

人工智能-卷积神经网络(学习向)

一.概述; 卷积神经网络(Convolutional Neural Network, CNN)是一种专门用于处理具有类似网格结构的数据(如图像)的深度学习模型。 主要用于处理机器视觉任务。 主要功能; 1.图像分类 2.目标检测 3.图像分割…

ABE 中的隐藏属性:DIPPE(去中心化内积谓词加密)

1. 引言 相关论文有: Yan Michalevsky 和 Marc Joye 2018年论文 Decentralized policy-hiding ABE with receiver privacy,发表于23rd European Symposium on Research in Computer Security, ESORICS 2018。Amit Sahai 和 Brent Waters 2005年论文 Fu…

书生浦语·第四期作业合集

目录 1. Linux基础知识 1.1-Linux基础知识 1.在终端通过ssh 端口映射连接开发机 2. 创建helloworld.py 3.安装相关包并运行 4.端口映射并访问相关网页

小程序-基于java+SpringBoot+Vue的校园快递平台系统设计与实现

项目运行 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

【智商检测——DP】

题目 代码 #include <bits/stdc.h> using namespace std; const int N 1e510, M 110; int f[N][M]; int main() {int n, k;cin >> n >> k;for(int i 1; i < n; i){int x;cin >> x;f[i][0] __gcd(f[i-1][0], x);for(int j 1; j < min(i, k)…

使用flex布局实现一行固定展示n个元素

前言&#xff1a; 最近在公司中完成小程序的UI设计稿时&#xff0c;遇到了布局一个问题&#xff1a;UI设计稿想实现的布局是这样的&#xff1a; 笔者第一反应就是使用flex中的justify-content: space-between;属性&#xff0c;但是使用之后发现&#xff0c;justify-content: …

AntFlow 0.20.0版发布,增加多数据源多租户支持,进一步助力企业信息化,SAAS化

传统老牌工作流引擎比如activiti,flowable或者camunda等虽然功能强大&#xff0c;也被企业广泛采用&#xff0c;然后也存着在诸如学习曲线陡峭&#xff0c;上手难度大&#xff0c;流程设计操作需要专业人员&#xff0c;普通人无从下手等问题。。。引入工作流引擎往往需要企业储…

IDL学习笔记(一)数据类型、基础运算、控制语句

近期&#xff0c;需要用到modis数据批量预处理&#xff0c;于是重新学习idl,感谢郭师兄推荐&#xff0c;以及张洋老师的详细教导。特以此为学习笔记&#xff0c;望学有所成。 IDL学习笔记&#xff08;一&#xff09; 数据类型数据类型创建数组类型转换函数代码输出print往文件…

【实体配置】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

使用 Pytorch 构建 Vanilla GAN

文章目录 一、说明二、什么是 GAN&#xff1f;三、使用 PyTorch 的简单 GAN&#xff08;完整解释的代码示例&#xff09;3.1 配置变量3.2 、PyTorch 加速3.3 构建生成器3.4 构建鉴别器 四、准备数据集五、初始化函数六、前向和后向传递七、执行训练步骤八、结果 一、说明 使用…

Python酷库之旅-第三方库Pandas(251)

目录 一、用法精讲 1186、pandas.tseries.offsets.BusinessMonthEnd.is_year_start方法 1186-1、语法 1186-2、参数 1186-3、功能 1186-4、返回值 1186-5、说明 1186-6、用法 1186-6-1、数据准备 1186-6-2、代码示例 1186-6-3、结果输出 1187、pandas.tseries.offs…

爬虫专栏第二篇:Requests 库实战:从基础 GET 到 POST 登录全攻略

简介&#xff1a;本文聚焦 Requests 库的强大功能与应用实战。首先介绍其安装步骤及版本选择要点&#xff0c;随后深入讲解 GET 请求&#xff0c;以百度页面为例&#xff0c;展示如何发起基本 GET 请求、巧妙添加 headers 与参数以精准搜索&#xff0c;以及正确设置 encoding 避…

猎板 PCB特殊工艺:铸就电子行业核心竞争力新高度

在当今竞争激烈且技术驱动的电子制造领域&#xff0c;印制电路板&#xff08;PCB&#xff09;作为电子产品的关键基石&#xff0c;其特殊工艺的发展水平直接影响着整个行业的创新步伐与产品品质。猎板 PCB 凭借在厚铜板、孔口铺铜、HDI 板、大尺寸板以及高频高速板等特殊工艺方…

基于K-NN + GCN的轴承故障诊断模型

往期精彩内容&#xff1a; Python-凯斯西储大学&#xff08;CWRU&#xff09;轴承数据解读与分类处理 Pytorch-LSTM轴承故障一维信号分类(一)-CSDN博客 Pytorch-CNN轴承故障一维信号分类(二)-CSDN博客 Pytorch-Transformer轴承故障一维信号分类(三)-CSDN博客 三十多个开源…

【Gitlab】CICD使用minio作为分布式缓存

1、安装minio 下载适合自己系统版本的安装文件https://dl.min.io/server/minio/release/windows-amd64/ yum install xxx.rpm 2、配置/etc/profile export MINIO_ACCESS_KEYroot [ui登录账号] export MINIO_SECRET_KEYminioDev001 [ui登录密码] export MINIO_OPTS"…