neo4j 图数据库使用教程

news2025/1/1 16:26:42

文章目录

  • neo4j 图数据库使用教程
    • 1) 下载
    • 2)安装
    • 3) 创建数据
    • 4)查询数据
    • 5) 更新数据
    • 6) 建立索引

neo4j 图数据库使用教程

1) 下载

neo4j下载地址

http://dist.neo4j.org/neo4j-community-3.5.21-unix.tar.gz

2)安装

首先:

cd /conf 
vi neo4j.conf

修改下面这俩个地方:

dbms.connectors.default_listen_address=0.0.0.0

dbms.connectors.default_advertised_address=bigdata04

启动:

 bin/neo4j  start 

查看:


http://bigdata04:7474

3) 创建数据

  1. crate指令
create:每次都创建新的点或边

先创建一个点
create (p1:Person {name:"zs"})

再创建一个点
create (p2:Person {name:"ls"})

create (p1:Person {name:"zs"}) -[:like]-> (p2:Person {name:"ls"})
  1. merge 指令
merge:这个命令在创建节点之前都会先查询一下,如果存在则不创建

merge (p3:Person {name:"jack"})
merge (p4:Person {name:"tom"})
merge (p3) -[:like]-> (p4)
  1. match指令
match:可以查询之前已有的节点()或者关系()

match(a:Person {name:"tom"}),(b:Person {name:"jack"})
merge (a) -[:like]-> (b)

4)查询数据

match + return :查看满足条件的数据并返回

match指令不能单独使用

match(p:Person {name:“tom”}) return p

  • 初始化数据:
  merge(a:User {name:"A"})
  merge(b:User {name:"B"})
  merge(c:User {name:"C"})
  merge(x:User {name:"X"})
  merge(y:User {name:"Y"})
  merge(z:User {name:"Z"})
  merge(a) -[:follow]-> (b)
  merge(c) -[:follow]-> (b)
  merge(a) -[:follow]-> (x)
  merge(a) -[:follow]-> (y)
  merge(c) -[:follow]-> (y)
  merge(c) -[:follow]-> (z)

在这里插入图片描述

  1. 某个主播的粉丝信息
    match (:User {name:“B”}) <-[:follow]- (n:User) return n
    还有一种写法是这样的
    match (n:User) -[:follow]-> (:User {name:“B”}) return n

    只返回name的值
    match (n:User) -[:follow]-> (:User {name:“B”}) return n.name

二度关系:
我 --> 主播B --> 粉丝

三度关系
我 --> 主播B --> 粉丝 --> 主播N

match (a:User {name:“B”}) <-[:follow]- (b:User) -[:follow]-> (c:User) return a.name as aname,b.name as bname,c.name as cname

对被关注最多的主播进行个筛选:

其实match后面也支持count()、order by、limit等命令
match (a:User {name:“B”}) <-[:follow]- (b:User) -[:follow]-> (c:User) return a.name as aname,c.name as cname ,count(*) as sum order by sum desc limit 3

注意:在这里可以使用count(*) 或者count(cname),效果是一样的

注意:where需要放在return前面
match (a:User {name:“B”}) <-[:follow]- (b:User) -[:follow]-> (c:User) where c.name <> “X” return a.name as aname,c.name as cname ,count(*) as sum order by sum desc limit 3

5) 更新数据

如何修改节点中的属性
match (a:User {name:“X”}) set a.age = 18

如何删除关系
match (:User {name:“A”}) -[r:follow]-> (:User {name:“X”}) delete r

6) 建立索引

1)普通索引

2) 唯一约束(类似主键)

如果某个字段的值是唯一的,可以建立唯一约束,这个查询性能比索引更快

将数据:follower_demo.log 放入import目录下

follower_demo.log数据:

fuid	uid
1001	1000
1001	1004
1001	1005
1001	2001
1002	1000
1002	1004
1002	2001
1003	1000
1003	1004
1006	1000
1006	1005
2002	1004
2002	1005
2002	2004
2003	1000
2003	1005
2003	2004

批量导入数据:

针对关键字段建立索引
create constraint on (user:User) assert user.uid is unique;

批量导入语句

:auto  using periodic commit 1000
load csv with headers from 'file:///follower_demo.log' as line fieldterminator '\t'
merge (viewer:User {uid: toString(line.fuid)})
merge (anchor:User {uid: toString(line.uid)})
merge (viewer) -[:follow]-> (anchor);

using periodic commit 1000
load csv with headers from 'file:///follower_demo.log' as line fieldterminator '\t'
merge (viewer:Test {name: toString(line.fuid)})
merge (anchor:Test {name: toString(line.uid)})
merge (viewer) -[:follow]-> (anchor);



lower_demo.log' as line fieldterminator '\t'
merge (viewer:Test {name: toString(line.fuid)})
merge (anchor:Test {name: toString(line.uid)})
merge (viewer) -[:follow]-> (anchor);

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

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

相关文章

【C++前后缀分解】1888. 使二进制字符串字符交替的最少反转次数|2005

本文涉及知识点 C前后缀分解 LeetCode1888. 使二进制字符串字符交替的最少反转次数 给你一个二进制字符串 s 。你可以按任意顺序执行以下两种操作任意次&#xff1a; 类型 1 &#xff1a;删除 字符串 s 的第一个字符并将它 添加 到字符串结尾。 类型 2 &#xff1a;选择 字符…

redis群集三种模式:主从复制、哨兵、集群

redis群集有三种模式 redis群集有三种模式&#xff0c;分别是主从同步/复制、哨兵模式、Cluster&#xff0c;下面会讲解一下三种模式的工作方式&#xff0c;以及如何搭建cluster群集 ●主从复制&#xff1a;主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主从复制…

合宙Air201模组LuatOS扩展功能:温湿度传感器篇!

通过前面几期的学习&#xff0c;同学们的学习热情越来越高。 合宙Air201模组除了支持3种定位方式外&#xff0c;还具有丰富的扩展功能&#xff0c;比如&#xff1a;通过外扩BTB链接方案&#xff0c;最多可支持21个IO接口&#xff1a;SPI、I2C、UART等多种接口全部支持。 本期…

【时时三省】(C语言基础)指针进阶 例题8

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 第一个打印2 a6不管它是多大 前面是&#xff1d;s 都得变成两个字节 所以打印2 第二个打印5 sizeof里面的表达式是不参与运算的 所以打印5 上面所有例题总结…

从边缘设备到云端平台,合宙DTURTU打造无缝物联网解决方案

如今&#xff0c;物联网&#xff08;IoT&#xff09;技术飞速发展&#xff0c;万物互联的时代已然到来&#xff0c;那么&#xff0c;高效、稳定地连接边缘设备与云端平台&#xff0c;实现数据的实时采集、传输与处理&#xff0c;就成为了推动物联网应用落地的关键。 DTU&#…

硬件工程师笔试面试——无线通讯模块

目录 15、无线通讯模块 15.1 基础 无线通讯模块实物图 15.1.1 概念 15.1.2 常见的无线通讯模块及其特点 15.1.3 无线通讯模块参数 15.1.4 无线通讯模块工作原理 15.2 相关问题 15.2.1 如何根据项目需求选择合适的无线通讯模块? 15.2.2 无线通讯模块的安全性如何,如…

合宙Air201模组LuatOS:点点鼠标就搞定的FOTA远程升级,你知道吗?

你是不是也经常遇到小伙伴吐槽&#xff1a;开发是个苦差事&#xff01;做项目倒还好&#xff0c;就怕遇到项目升级&#xff0c;那简直让人头大。。。 如果你也有这种困惑&#xff0c;就多了解一下合宙的开发工具&#xff0c;简单实用又高效&#xff0c;甚至只需点点鼠标&#…

【变化检测】基于ChangeStar建筑物(LEVIR-CD)变化检测实战及ONNX推理

主要内容如下&#xff1a; 1、LEVIR-CD数据集介绍及下载 2、运行环境安装 3、ChangeStar模型训练与预测 4、Onnx运行及可视化 运行环境&#xff1a;Python3.8&#xff0c;torch1.12.0cu113&#xff0c;onnxruntime-gpu1.12.0 likyoo变化检测源码&#xff1a;https://github.c…

【楚怡杯】职业院校技能大赛 “云计算应用” 赛项样题四

某企业根据自身业务需求&#xff0c;实施数字化转型&#xff0c;规划和建设数字化平台&#xff0c;平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”&#xff0c;拟采用开源OpenStack搭建企业内部私有云平台&#xff0c;开源Kubernetes搭建云原生服务平台&#xff0c;选…

动手学深度学习(四)卷积神经网络-下

全连接层存在的问题&#xff1a;参数过大&#xff0c;计算成本过高。 一、网络中的网络&#xff08;NiN&#xff09; 1、NiN块 ①NiN块的结构 NiN串联多个由卷积层和“全连接”层构成的小网络来构建一个深层网络。这种由卷积层和“全连接”层构成的小网络就是NiN块。 &#…

线程池夺命十四问

目录 一&#xff1a;什么是线程池 二&#xff1a;线程池有什么好处 三&#xff1a;如何创建一个线程池 Executors ThreadPoolExecutors 四&#xff1a;创建一个线程池为什么不推荐使用Executors 五&#xff1a;如何设置线程池的大小 六&#xff1a;线程池有哪些参数 …

(CS231n课程笔记)深度学习之损失函数详解(SVM loss,Softmax,熵,交叉熵,KL散度)

学完了线性分类&#xff0c;我们要开始对预测结果进行评估&#xff0c;进而优化权重w&#xff0c;提高预测精度&#xff0c;这就要用到损失函数。 损失函数&#xff08;Loss Function&#xff09;是机器学习模型中的一个关键概念&#xff0c;用于衡量模型的预测结果与真实标签…

【数据结构篇】~链表算法题3(环形链表)

链表算法题3&#xff08;环形链表&#xff09; 环形链表的证明1. 环形链表I​1) 思路2&#xff09;代码实现 2. 环形链表II​1) 思路11) 思路22&#xff09;代码实现 环形链表的证明 1. 环形链表I​ https://leetcode.cn/problems/linked-list-cycle/description/ 1) 思路 判断…

拥控算法BBR入门1

拥塞控制算法只与本地有关 一个TCP会话使用的拥塞控制算法只与本地有关。 两个TCP系统可以在TCP会话的两端使用不同的拥塞控制算法 Bottleneck Bandwidth and Round-trip time Bottleneck 瓶颈 BBR models the network to send as fast as the available bandwidth and is 2…

Qt容器类控件——QGroupBox和QTabWidget

文章目录 QGroupBox又来点餐QTabWidget使用演示 QGroupBox 容器类控件即里面可以容纳其他的控件 QGroupBox叫做分组框&#xff0c;可以把其他控件放在里面作为一组 QGroupBox的存在&#xff0c;只是为了让界面更好看一点&#xff0c;并不实现实质性的功能。 当界面较复杂的时候…

C++ 类的默认成员函数-构造函数

个人主页&#xff1a;Jason_from_China-CSDN博客 所属栏目&#xff1a;C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目&#xff1a;C知识点的补充_Jason_from_China的博客-CSDN博客 概念概述 默认成员函数就是用户没有显式实现&#xff0c;编译器会自动生成的成员函数称…

【openGauss】检查工具gs_check,gs_checkperf的应用

1. gs_check &#xff08;1&#xff09;检查指定项&#xff08;以CheckCPU为例&#xff09; 在执行gs_check -i CheckCPU时如果出现如下报错是因为没有为集群配置过免密&#xff0c;即使当前环境为单机也要求要配置ssh互信&#xff0c;有两种解决办法 办法一&#xff1a;配置…

kali里面搭建docker容器

注意事项&#xff1a;kali版本&#xff0c;镜像源 &#xff08;1&#xff09;权限为管理员&#xff1a; sudo su (2) 更新软件包列表并升级已安装的软件包 apt-get update apt-get upgrade 出错了&#xff0c;应该是更新源出问题了。 &#xff08;3&#xff09;更换镜像源&am…

【springboot】实现文件上传和下载

目录 1. 新建一个springboot项目2. 配置文件application.propertiesapplication.yml 3. 控制类实现文件上传和下载4. 测试 1. 新建一个springboot项目 新建一个springboot项目&#xff0c;选择web&#xff0c;默认即可. 主要pom配置文件如下&#xff1a; <parent><gr…