Neo4j详细介绍及使用教程

news2024/12/23 7:15:02

文章目录

    • 一、Neo4j介绍
    • 1.Neo4j简介
    • 2.图数据库简介
    • 3.Neo4j的优缺点
    • 4.Neo4j的常见应用场景
    • 二、使用教程
    • 1.下载安装
    • 2.数据插入和查询
    • (1)基本概念
    • (2)基本语法
    • Ⅰ.CREATE操作——创建
    • Ⅱ.MERGE——创建或更新
    • Ⅲ.Match操作——查找指定的图数据
    • Ⅳ.DELETE操作——删除节点
    • 3.JAVA实战

一、Neo4j介绍

1.Neo4j简介

Neo4j是一个高性能的,NOSQL图形数据库。它是一个嵌入式的、高性能(基于磁盘的)、具备完全的事务特性的Java持久化引擎,该引擎具有成熟数据库的所有特性,它在图(网络)中而不是表中存储数据。

2.图数据库简介

(1)特点:它的数据模型主要是以节点和关系(边)来体现,也可处理键值对。它的优点是快速解决复杂的关系问题。

(2)特征:
①包含节点和边;
②节点上有属性(键值对);
③边有名字和方向,并总是有一个开始节点和一个结束节点;
④边也可以有属性。

如下图的反洗钱模型:
在这里插入图片描述

(3)图计算
基本的数据结构表达就是:
G=(V, E)
V=vertex(节点)
E=edge(边)

3.Neo4j的优缺点

(1)优点
①底层数据存储专门针对图形数据的特点进行了优化,在处理关系数据方面比其他数据库有更高的性能。
②专门为关系数据设计的查询语言更便于关系数据的操作。
③没有表结构的概念,它比SQL更灵活。
④自动为数据建立合适的索引(根据数据的标签),避免索引管理的麻烦。
⑤支持高可用主从集群部署。
⑥借助图形平台等辅助工具帮助开发人员快速构建完整的关系数据平台。
(2)neo4j的缺点
①图数据结构导致写入性能差。
②只支持java和基于jvm的语言,社区版不能使用集群。
③社区不够活跃,资料不丰富。
(3)为什么选用Neo4j
Neo4j发布时间早,产品较为成熟稳定,目前是市场使用率最高的图数据库,文档和各种技术博客较多

4.Neo4j的常见应用场景

(1)金融行业的反洗钱模型
(2)社交网络图谱
(3)企业关系图谱

二、使用教程

1.下载安装

(1)下载
需要jdk环境:Neo4j v4 需使用 jdk11以上版本;v5需要jdk17以上版本。我本地是jdk1.8版本,所以选择v3的版本。
v4、v5下载可以到官网:https://neo4j.com/download-center/,但是官网找不到v3版本。
这里放上v3.5.5版本的资源:链接:https://pan.baidu.com/s/1Wx4MwHRCRKUOXUcUvWctmA 提取码:0g30
(2)配置环境变量
新建用户变量NEO4J_HOME,值为D:\tools\neo4j\neo4j-community-3.5.5-windows\neo4j-community-3.5.5
然后在系统变量Path中添加%NEO4J_HOME%\bin
(3)启动
在cmd中运行D:\tools\neo4j\neo4j-community-3.5.5-windows\neo4j-community-3.5.5\bin>neo4j console
然后进入http://localhost:7474/browser/就可以访问了
然后会提示你输入用户名密码 默认是neo4j/neo4j

2.数据插入和查询

(1)基本概念

Nodes:节点,用于图形数据记录
Relationships:关系,用于连接节点
Properties:属性,用于命名数据值

(2)基本语法

首先我们找到创建图的入口,然后再在最上方运行命令即可
在这里插入图片描述

Ⅰ.CREATE操作——创建

①添加节点:
CREATE (n:Person {name:‘小李’, born:1989}) RETURN n;
注:CREATE是创建操作,n代表该节点,相当于一个只在当前语句生效的局部变量,Person是标签,代表节点的类型。花括号{}代表节点的属性。RETURN 代表返回该数据,也可以不return直接插入

批量操作:
CREATE (a:Person {name:‘老张’, born:1990})
CREATE (b:Person {name:‘老王’, born:1995})
CREATE (c:Person {name:‘李华’, born:1993})
CREATE (d:Country {name:‘美国’, des:‘美利坚共和国’})
CREATE (n:Country {name:‘中国’, des:‘中华人民共和国’})

此时我们的图:

②创建关系:
CREATE (a:Person {name:‘小李’, born:1989})-[r:所属国家]->(b:Country {name:‘中国’, des:‘中华人民共和国’}) return a,r,b
在一个Person与Country之间建立一个“所属国家”关系,并且这个关系是有方向的

Ⅱ.MERGE——创建或更新

merge等于是create+match,如果节点中有重复数据,就不会添加进去
①创建节点:
MERGE (n:Person {name:‘小胡’, born:1990})
②创建关系:
MATCH (a:Person {name:‘李华’, born:1993}), (b:Country {name:‘美国’, des:‘美利坚共和国’})
MERGE (a)-[r:所属国家]->(b)
在这里插入图片描述

③更新操作:
MERGE (n:Person {name:‘老王’})
ON MATCH SET n.born = 2023
RETURN n

Ⅲ.Match操作——查找指定的图数据

①普通查询:
MATCH (n:Person {born:1990}) RETURN n
指查询一个标签(Label)为Person、born为1990的节点。
在这里插入图片描述
②查询所有对外有关系的节点(注意这里箭头的方向)
MATCH (a)–>() RETURN a
③查询所有有关系的节点
MATCH (a)–() RETURN a
④修改操作
MATCH (a:Person {name:‘老王’}) SET a.born=1988 RETURN a
⑤删除属性
MATCH (a:Country {name:‘美国’}) REMOVE a.des RETURN a

Ⅳ.DELETE操作——删除节点

①删除
MATCH (a:Person {name:‘李华’}) DETACH DELETE a
Delete操作会删除节点与关系。
②删除全部:
MATCH (n) DETACH DELETE n

3.JAVA实战

待续。。

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

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

相关文章

FPGA之VGA/LCD数字时钟显示

文章目录前言一、LCD显示控制1.LCD显示一个字符2.LCD显示多个字符二、数字时钟输出1.数字时钟2.十进制数据拆分BCD码三、按键检测及LCD驱动1.按键检测2.LCD驱动四、总结前言 软件实现了在4.3寸LCD左上角显示一个数字时钟,效果如下图所示。本文针对VGA/LCD控制时许有…

leetcode:2103. 环和杆(python3解法)

难度:简单 总计有 n 个环,环的颜色可以是红、绿、蓝中的一种。这些环分布穿在 10 根编号为 0 到 9 的杆上。 给你一个长度为 2n 的字符串 rings ,表示这 n 个环在杆上的分布。rings 中每两个字符形成一个 颜色位置对 ,用于描述每个…

makefile 入门

make常用选项 # make 默认在当前目录中寻找GUNmakefile,makefile,Makefile的文件作为make的输入文件 # -f 可以指定默认的输入文件名,如: -f MyMakefile # -v 显示make版本号 # -n 只输出命令,但不执行,一般用于测试 # -s 只执行命令,但不显示具体命令,与在命令中使用作用一样…

第四十四讲:神州防火墙双机热备配置

两台防火墙硬件型号和软件版本都完全相同,为了避免防火墙不堪重负而宕机引起网络中断,可以考虑应用双机热备(HA)解决方案。双机热备能够把两台防火墙构成一个工作组,一主一备,保证数据通信畅通,…

【实际开发01】- 单元测试 ( 追求正确性 )

目录 0. 单元测试 概念 / 解析 1. 为什么要进行单元测试 1. JUnit ~ Test 2. IDEA 中使用 junit 单元测试 , 不能使用 Scanner 的解决方法 3. Junit 测试 Tutorial 1. daiding 4. Test 修饰的方法必须 public 1. validatePublicVoidNoArgMethods(Test.class, false, er…

功率二极管的损耗分析和选型原则

功率二极管的损耗分析和选型原则 tip:参考网上资料,学习为主 1.二极管的分类 2.二极管的损耗组成 3.二级管的损耗分析 4.应用实例1.Flyback电源电路二极管损耗计算 5.实例应用2.BOOST电路二极管损耗计算 6.实例应用3.大功率整流桥二极管参数计算 7.选型…

sqli-labs 5~6 多命通关攻略

sqli-labs 5~6 多命通关攻略描述判断注入类型正常输入不正常输入错误输入判断 SQL 查询结果的列数猜测 SQL 查询结果中的列数为两列猜测 SQL 查询结果中的列数为三列猜测 SQL 查询结果中的列数为四列爆破方式的可行性函数 UpdateXML()爆破(报错注入)爆破…

农业智能化进入“刚需时代 ” ,维视智造机器视觉实验室赋能新农科人才培养

1、传统农业数字化转型 新农科人才急需紧缺数千年来,农业是我国立国基础,农业兴衰关系到国家的命运。在大力推动乡村振兴的背景下,高校作为强农兴农的“国之重器”,在培育“农”的传人、新农科建设方面扮演着不可替代的角色。世界…

C++入门——内联函数、extern “C“

一. 内联函数 1.概念及分析 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函数调 用建立栈帧的开销,内联函数提升程序运行的效率。 int Add(int a, int b) {int c a b;return c; }int main() {int re…

聚焦技术创新实力,时序数据库 TDengine 荣登中国技术先锋年度评选两大榜单

2023 年 1 月 5 日,中国技术先锋年度评选 | 2022 中国最受开发者欢迎的技术活动榜单正式发布。作为中国领先的新一代开发者社区,SegmentFault 思否依托社区活动板块及全站数百万开发者用户行为数据,及活动规模、内容好评度、行业综合影响力指…

Go语言设计与实现 --调度器(详细介绍)

GMP和GM模型 先来一张图: G(Goroutine):代表Go 协程Goroutine,存储了 Goroutine 的执行栈信息、Goroutine 状态以及 Goroutine 的任务函数等。G的数量无限制,理论上只受内存的影响,创建一个 G 的初始栈大小为2-4K&…

vue项目安装使用element_UI

安装element_UI之前需要安装VUE脚手架框架! 第一步: 在Vscode 随意打开一个文件夹,在集成终端打开 npm i -g vue/cli (检测: vue -V) 第二步:新建一个文件夹,并且在集成终端打开安装VUE脚手架 需要输入命令: vue create yan6 //yan6 为自定义文件名 1: 选第三个自定义 2: 将…

SpringBoot缓存数据(官方案例)

在线文档项目结构 1.源码克隆:git clone https://github.com/spring-guides/gs-caching.git 2.包含两个项目initial和complete,initial可以根据文档练习完善,complete是完整项目 3.功能描述:构建应用程序,在图书存储库…

JAVA并发编程工具篇--1理解线程池任务的执行和线程的销毁

前言:在编程中我们为什么要使用线程池,线程池中的线程是怎么执行任务的,线程池中的线程是如何复用和销毁的; 1 什么是线程池: 提前创建一些线程放到一个地方,使用的时候直接获取,避免频繁的创建…

CalDAV网页客户端AgenDAV

什么是 AgenDAV ? AgenDAV 是一个类似于 Google 日历的 CalDAV 网络客户端,具有 AJAX 界面,允许用户管理自己的日历和共享的日历。 注意事项 AgenDAV依赖于 CalDAV 服务器(Bakal、DAViCal 等),所以需要先安…

软件测试员在面试中常遇问题

目前,疫情已经逐渐得到了控制,各行各业都掀起了复工大潮。与此同时,软件测试的招聘需求也随着复工的开始而变得紧急起来,而求职者应该怎样抓住机会进行应聘呢?首先最重要的就是多刷面试题,这样才能才面试过…

CSS权威指南(五)字体

文章目录1.字体族2.font-face3.字重(font-weight)4.字号(font-size)5.字形(font-style)6.字体拉伸(font-stretch)7.字距(font-kerning)8.字体变形&#xff08…

Python 办公自动化,全网最全整理来了!拒绝无效率加班!

大家好,今天给大家分享一篇 Python 自动化办公干货,整整42个实战项目案例。每一个项目案例都有详细的视频讲解,是一套非常全面的Python自动化办公项目,建议大家收藏后学习,梳理不易,记得点赞支持。详细目录…

【菜菜的CV进阶之路 - 深度学习环境搭建】常用软件安装

四、安装网易云 双系统装完了,下一步当然是,休息一下,听一首歌啦~ 1、连网:只能使用wifi连,网线直连的话,还需要配置 2、安装网易云: 下载最新的Linux安装包,然后 sudo apt inst…

数据的存储(C语言)

数据类型: 要了解数据是如何存储的,我们就得先知道C语言中的数据类型 基本数据类型 基本数据类型,也就是C语言内置类型: char -> 字符型 short -> 短整型 int -> 整…