图数据库Neo4j概念、应用场景、安装及CQL的使用
一、图数据库概念
引用Seth Godin的说法,企业需要摒弃仅仅收集数据点的做法,开始着手建立数据之间的关联关系。数据点之间的关系甚至比单个点本身更为重要。
传统的**关系数据库管理系统(RDBMS)**并不擅长处理数据之间的关系,那些表状数据模式和呆板的结构难以添加新连接或不同类型连接。为了利用这些数据关系,需要一种能将关系信息存储为一等实体的新型数据库技术,这种技术就是图数据库。
图数据库不仅能有效存储数据点之间的关系,而且非常灵活,适合添加新的关系类型,并使数据模型适应新的业务需求。
除了数据库本身,图技术还涵盖了图数据科学的新兴领域,适合预测分析和机器学习,而所有的图数据可视化适合针对特定目的的数据发现和探索。
二、图数据应用场景
1、欺诈检测
2、实时推荐引擎
3、知识图谱
4、反洗钱
5、主数据管理
6、供应链管理
7、增强网络和IT运营管理能力
8、数据谱系
9、身份和访问管理
10、材料清单
三、安装Neo4j
有三种安装方式,一种是社区版,在官网上下载社区版本;第二种是基于docker进行安装的;第三种是neo4j desktop安装,本文介绍第一种安装社区版本。
官网 https://neo4j.com/deployment-center/#community
如果是4.x的版本,jdk要是符合11的,因为我们的jdk版本是8的,安装的版本是3.5x。
* bin目录:用于存储Neo4j的可执行程序;
* conf目录:用于控制Neo4j启动的配置文件;
* data目录:用于存储核心数据库文件;
* plugins目录:用于存储Neo4j的插件;
在bin目录下使用neo4j console启动

默认账号密码neo4j/neo4j, 可以修改密码。


Neo4j-CQL使用
neo4j-CQL简介
Neo4j的Cypher语言是为了处理图形数据而构建的,CQL代表Cypher查询语言,像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言。
CQL命令 用法
| CQL命令 | 用法 |
|---|---|
| CREATE | 创建节点,关系和属性 |
| MATCH | 检索有关节点,关系和属性数据 |
| RETURN | 返回查询结果 |
| WHERE | 提供条件过滤检索数据 |
| DELETE | 删除节点和关系 |
| REMOVE | 删除节点和关系的属性 |
| ORDER BY | 排序检索数据 |
| SET | 添加或更新标签 |
| 节点、关系的方向、关系的标签 |
常用的CQL命令
match (n:person {name: ‘孙悟空’}) return n.name, id(n)
match (n:person) where n.name=‘孙悟空’ return n.name, id(n)
match (n:person {name:‘孙悟空’}),(m:xiyouRelation) where m.from =‘孙悟空’
return n.name, m.relation, m.to
创建节点
创建节点
create (n)
创建多个节点
create(n),(m)
创建带标签和属性的节点并返回节点
create (n: person {name: '孙悟空'}) return n创建关系
先创建节点
create(:student{name:"xiaohong"}), (:student{name:"zhangsan"})查询节点
match (n:student {name: "小明"}),(m:student {name: "小红"})
create (n)-[r:同学]-> (m) return n.name, type(r), m.name创建关系
match (n:person {name: '孙悟空'}), (m:xiyouRelation),(s: person) where
m.from = '孙悟空' and m.to = s.name
create (n)-[: 西游人物关系{relation:m.relation}]->(s)
return n.name, m.relation, s.name
就是把 n 指向 s
where子句
使用where子句来过滤match查询的结果。
# 创建关系
match (n:person), (m:person) where n.name='孙悟空' and m.name='猪八戒'
create (n)- [r:师弟]->(m) return n.name, type(r), m.name
Delete删除
Neo4j使用CQL Delete子句
删除节点前,先删除关系
删除节点及相关节点和关系
match (n: person{name: “白龙马”})delete n
删除关系
match (n:student) -[r]->(m:student) where n.name=“张三” and m.name= “小红” delete r
return type®
Match p=(:person {name : ‘孙悟空’})-[r:‘西游人物关系’]->() return p
Remove删除
删除属性,
create(n:student: {name:“张三”, age:18})
match (n:person {name:“张三”}) remove n:person return n
Set 改值
match (n:role {name:“fox”}) set n.age =32 return n
Order by排序
match (n: “西游”) return id(n), n.name order by id(n) desc
IN操作符
与SQL一样,Neo4j CQL提供了一个IN运算符,可以是集合
match (n: ‘西游’) where n.name in[‘孙悟空’,‘唐僧’] return id(n), n.name, n.tail , n.label
相关文章:
图数据库Neo4j概念、应用场景、安装及CQL的使用
一、图数据库概念 引用Seth Godin的说法,企业需要摒弃仅仅收集数据点的做法,开始着手建立数据之间的关联关系。数据点之间的关系甚至比单个点本身更为重要。 传统的**关系数据库管理系统(RDBMS)**并不擅长处理数据之间的关系,那些表状数据模…...
路由器基础(四): RIP原理与配置
路由信息协议 (Routing Information Protocol,RIP) 是最早使用的距离矢量路由协议。因为路由是以矢量(距离、方向)的方式被通告出去的,这里的距离是根据度量来决定的,所以叫“距离矢量”。 距离矢量路由算法是动态路由算法。它的工作流程是:…...
红外遥控开发RK3568-PWM-IR
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1.红外遥控的发送接收工作原理2.红外协议3.红外遥控系统框图4.遥控器添加方法4.1 记录键值4.2 添加键值总结前言 提示:这里可以添加本文要记录的大概内容: 1.红外遥控的发送接收工作原理 …...
go-sync-mutex
Sync Go 语言作为一个原生支持用户态进程(Goroutine)的语言,当提到并发编程、多线程编程时,往往都离不开锁这一概念。锁是一种并发编程中的同步原语(Synchronization Primitives),它能保证多…...
高并发系统设计
高并发系统通用设计方法 Scala-out 横向扩展,分散流量,分布式集群部署 缺点:引入复杂度,节点之间状态维护,节点扩展(上下线) Scala-up 提升单机性能,比如增加内存,增…...
Vue3-Pinia快速入门
1.安装pinia npm install pinia -save 2.在main.js中导入并使用pinia // 导入piniaimport { createPinia } from "pinia"; const pinia createPinia();//使用pinia app.use(pinia)app.mount(#app) 3.在src目录下创建包:store,表示仓库 4…...
Python算法——插入排序
插入排序(Insertion Sort)是一种简单但有效的排序算法,它的基本思想是将数组分成已排序和未排序两部分,然后逐一将未排序部分的元素插入到已排序部分的正确位置。插入排序通常比冒泡排序和选择排序更高效,特别适用于对…...
Java21新特性
目录 一、Java21新特性 1、字符串模版 2、scoped values 3、record pattern 4、switch格式匹配 5、可以在switch中使用when 6、Unnamed Classes and Instance Main Methods 7、Structured Concurrency 一、Java21新特性 1、字符串模版 字符串模版可以让开发者更简洁的…...
4 Tensorflow图像识别模型——数据预处理
上一篇:3 tensorflow构建模型详解-CSDN博客 本篇开始介绍识别猫狗图片的模型,内容较多,会分为多个章节介绍。模型构建还是和之前一样的流程: 数据集准备数据预处理创建模型设置损失函数和优化器训练模型 本篇先介绍数据集准备&am…...
SpringBoot整合RabbitMQ学习笔记
SpringBoot整合RabbitMQ学习笔记 以下三种类型的消息,生产者和消费者需各自启动一个服务,模拟生产者服务发送消息,消费者服务监听消息,分布式开发。 一 Fanout类型信息 . RabbitMQ创建交换机和队列 在RabbitMQ控制台,新…...
在校园跑腿系统小程序中,如何设计高效的实时通知与消息推送系统?
1. 选择合适的消息推送服务 在校园跑腿系统小程序中,选择一个适合的消息推送服务。例如,使用WebSocket技术、Firebase Cloud Messaging (FCM)、或第三方推送服务如Pusher或OneSignal等。注册并获取相关的API密钥或访问令牌。 2. 集成服务到小程序后端…...
求极限Lim x->0 (x-sinx)*e-²x / (1-x)⅓
题目如下: 解题思路: 这题运用了无穷小替换、洛必达法则、求导法则 具体解题思路如下: 1、首先带入x趋近于0,可以得到(0*1)/0,所以可以把e的-x的平方沈略掉 然后根据无穷小替换,利用t趋近于0时…...
JavaScript数据类型详细解析与代码实例
JavaScript是一种弱类型动态语言,数据类型分为原始类型和对象类型。 原始类型 原始类型包括:数字、字符串、布尔值和undefined、null。 数字 JavaScript中的数字类型包括整数和浮点数,可以进行基本的数学运算。 var num1 10; // 整数 v…...
.NET Framework中自带的泛型委托Func
Func<>是.NET Framework中自带的泛型委托,可以接收一个或多个输入参数,并且有返回值,和Action类似,.NET基类库也提供了多达16个输入参数的Func委托,输出参数只有1个。 1、Func泛型委托 .NET Framework为我们提…...
深入理解JVM虚拟机第十七篇:虚拟机栈中栈帧的内部结构
大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻JavaScript 本文章简介:话不多说,让我们讲清楚虚拟机栈存储结构和运行原理…...
uniapp中地图定位功能实现的几种方案
1.uniapp自带uni.getLocation uni.getLocation(options) getlocation | uni-app官网 实现思路:uni.getLocation获取经纬度后调用接口获取城市名 优点:方便快捷,直接调用 缺点:关闭定位后延时很久,无法控制定位延迟…...
JS功能实现
目录 轮播图移动端轮播图按下回车发表评论tab栏切换全选按钮 轮播图 <style>* {box-sizing: border-box;}.slider {width: 560px;height: 400px;overflow: hidden;}.slider-wrapper {width: 100%;height: 320px;}.slider-wrapper img {width: 100%;height: 100%;display:…...
connect-history-api-fallback原理
connect-history-api-fallback是一个用于处理前端路由的中间件,它的原理是在服务器接收到请求时,检查请求的路径是否匹配到静态文件(如HTML、CSS、JS等),如果不匹配,则将请求重定向到前端的入口文件&#x…...
Android ConstraintLayout分组堆叠圆角ShapeableImageView
Android ConstraintLayout分组堆叠圆角ShapeableImageView <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"…...
Docker Stack部署应用详解+Tomcat项目部署详细实战
Docker Stack 部署应用 概述 单机模式下,可以使用 Docker Compose 来编排多个服务。Docker Swarm 只能实现对单个服务的简单部署。而Docker Stack 只需对已有的 docker-compose.yml 配置文件稍加改造就可以完成 Docker 集群环境下的多服务编排。 stack是一组共享…...
RPG Maker MV/MZ文件解密工具:轻松解锁游戏资源的神奇钥匙
RPG Maker MV/MZ文件解密工具:轻松解锁游戏资源的神奇钥匙 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https://git…...
2026全球AI产业发展全景:模型竞争、多模态应用与生态格局深度解析
2026年,人工智能产业进入技术落地与生态扩张并行的深化阶段,从基础模型迭代到行业场景渗透,均呈现出高度成熟的发展态势。对于个人用户与企业开发者而言,高效整合全球AI能力已成为提升效率的关键。https://n.kulaai.cn 作为一站式AI模型与工具聚合平台,汇集了ChatGPT、Cla…...
从USB2.0协议到Zynq7000实现:手把手拆解一次完整的批量传输(Bulk Transfer)
从USB2.0协议到Zynq7000实现:深入解析批量传输的硬件协同机制 USB批量传输(Bulk Transfer)作为最基础的数据传输模式之一,在嵌入式系统中扮演着关键角色。本文将带您深入理解USB2.0协议中批量传输的完整流程,并揭示Zyn…...
从一块“三无”FPGA板看硬件设计:电源去耦、DDR端接与8层层叠分析
从一块“三无”FPGA板看硬件设计:电源去耦、DDR端接与8层层叠分析 拆解一块没有原理图、没有BOM、没有设计文档的"三无"FPGA板,就像打开一个黑匣子。当我在二手平台看到这块Cyclone IV EP4CGX110核心板时,第一反应是:这…...
OpenClaw批量处理技巧:Qwen3.5-9B-AWQ-4bit优化1000+图片元数据
OpenClaw批量处理技巧:Qwen3.5-9B-AWQ-4bit优化1000图片元数据 1. 问题背景与需求拆解 上周接手了一个摄影爱好者的委托——他积累了近5000张未经整理的旅行照片,需要批量处理EXIF元数据并生成描述性标签。传统手动处理预计需要8小时,而通过…...
开箱即用!Retinaface+CurricularFace人脸识别镜像一键部署与测试
开箱即用!RetinafaceCurricularFace人脸识别镜像一键部署与测试 你是否曾对复杂的人脸识别项目望而却步?面对PyTorch、CUDA版本冲突、模型下载和环境配置的层层阻碍,是不是感觉还没开始写代码,精力就已经耗尽了?今天&…...
Google Cloud Python客户端库版本管理终极指南:如何选择和使用不同版本
Google Cloud Python客户端库版本管理终极指南:如何选择和使用不同版本 【免费下载链接】google-cloud-python Google Cloud Client Libraries for Python 项目地址: https://gitcode.com/gh_mirrors/go/google-cloud-python Google Cloud Python客户端库为开…...
深度学习图神经网络:从结构数据中学习表示
深度学习图神经网络:从结构数据中学习表示 1. 背景与意义 图神经网络(Graph Neural Networks,GNNs)是一类专门处理图结构数据的深度学习模型。在现实世界中,许多数据都具有图结构,如社交网络、分子结构、…...
救命!这些毕设太好抄了,3000+毕设案例推荐第1022期
221、基于Java的环境保护在线监管智慧管理系统的设计与实现(论文+代码+PPT) 环境保护在线监管智慧管理系统主要功能包括:企业管理、监测点管理、污染物管理、污染源管理、水污染监测数据、大气污染监测数据、噪声污染监测数据、土壤污染监测…...
免费商用AI绘画:Bidili Generator基于SDXL,LoRA风格一键切换
免费商用AI绘画:Bidili Generator基于SDXL,LoRA风格一键切换 1. 项目概述:当SDXL遇上Bidili风格 在AI绘画领域,Stable Diffusion XL(SDXL)1.0已经成为开源图像生成的标杆模型。而Bidili Generator正是在这…...
