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

news/2024/12/24 0:25:36/

目录

一、安装前提条件

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

neo4j%20start-toc" style="margin-left:40px;">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

neo4j%20start">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.ppmy.cn/news/1557594.html

相关文章

金碟中间件-AAS-V10.0安装

金蝶中间件AAS-V10.0 AAS-V10.0安装 1.解压AAS-v10.0安装包 unzip AAS-V10.zip2.更新license.xml cd /root/ApusicAS/aas# 这里要将license复制到该路径 [rootvdb1 aas]# ls bin docs jmods lib modules templates config domains …

详细ECharts图例1

异步加载饼图 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <script srcjs/echarts.js></script> <script src"js/jquery-3.3.1.js"></script> <title>异步数据加载并绘制饼图</title…

android RadioButton + ViewPager+fragment

RadioGroup viewpage fragment 组合显示导航栏 1、首先主界面的布局控件就是RadioGroup viewpage <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools…

React 组件中 State 的定义、使用及正确更新方式

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;React篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容React 组件中 State 的定义、使用及正确更新方式 前言 在 React 应用开发中&#xff0c;state …

uniapp中的uni-file-picker组件上传多张图片到服务器

由于在uniapp官方文档中的uni-file-picker组件可实现图片上传功能&#xff0c;默认的是上传到自带的服务&#xff0c;所以我们要修改成自己的服务器 1. 添加 :auto-upload"false" 加上这个取消自动上传 <uni-file-picker v-model"jobAddUpdateForm.imag…

使用Node.js搭配express框架快速构建后端业务接口模块Demo

使用Node.js搭配express框架快速构建后端业务接口模块Demo&#xff01;实际开发中&#xff0c;有很多项目&#xff0c;其实都是可以使用node.js来完成对接mysql数据库的&#xff0c;express确实使用起来非常简单&#xff0c;入手快&#xff0c;效率非常高。下面是一个简单的案例…

数据可视化-4. 漏斗图

目录 1. 漏斗图适用场景分析 1.1 业务流程分析 1.2 营销活动分析 1.3 客户生命周期管理 2. 漏斗图局限性 2.1 数据量限制 2.2 信息丢失 2.3 静态展示 2.4 过于简化 2.5 转化窗口期的影响 2.6 用户细分限制 3. 漏斗图代码实现 3.1 Python 代码实现 3.2 漏斗图效果…

Unity 圆形循环复用滚动列表

一.在上一篇垂直循环复用滚动列表的基础上&#xff0c;扩展延申了圆形循环复用滚动列表。实现此效果需要导入垂直循环复用滚动列表里面的类。 1.基础类 using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; using …