neo4j的搭建和实例使用
一. 简介
neo4j是当今最流行的图数据库,基于 节点+关系 的架构,保存了图形数据的基本元素。同时,数据库也支持通过基础数据元素和独特的CQL查询语法,快速方便的检索、构建复杂的图表关系结果。
二. 基础知识
windows安装方法: 安装方法
CQL基本语法:基本语法
三. 实例
我想构建一个父子继承关系的图表结构,以苏洵苏轼家族为例,先建节点node如下:
create(suxun:Person_{name:"苏洵",age:80,sex:"男"})
create(sushi:Person_{name:"苏轼",age:53,sex:"男"})
create(suzhe:Person_{name:"苏辙",age:51,sex:"男"})
create(suxiaomei:Person_{name:"苏小妹",age:45,sex:"女"})
create(susun:Person_{name:"苏孙",age:29,sex:"男"})
create(suxiaosun:Person_{name:"苏重孙",age:6,sex:"女"})
其中有些节点人名为虚构,为了创建实例方便。
因为我数据库中先前已有Person标签名做了其他的测试,为避免重复和歧义,本例中标签名起为"Person_"。
对于节点之间的关系,为 :
苏洵-------|------苏轼 --------------苏孙 ---------------苏重孙
|------苏辙
|------苏小妹
因此创建结构的CQL为:
match(p1:Person_),(p2:Person_)
where p1.name="苏洵" and p2.name = "苏轼"
create (p1) -[parent:Parent{relation:"父亲"}]-> (p2);match(p1:Person_),(p2:Person_)
where p1.name="苏洵" and p2.name = "苏辙"
create (p1) -[parent:Parent{relation:"父亲"}] -> (p2);match(p1:Person_),(p2:Person_)
where p1.name="苏洵" and p2.name = "苏小妹"
create (p1) -[parent:Parent{relation:"父亲"}] -> (p2);match(p1:Person_),(p2:Person_)
where p1.name="苏轼" and p2.name = "苏孙"
create (p1) -[parent:Parent{relation:"父亲"}] -> (p2);match(p1:Person_{name:"苏孙"}),(p2:Person_{name:"苏重孙"})
create (p1) -[parent:Parent{relation:"父亲"}] -> (p2);
其中有两种方法:
- 第一种用where进行节点筛选,例如 where p1.name="苏洵" and p2.name = "苏轼"
- 第二种用属性进行节点筛选,例如match(p1:Person_{name:"苏孙"}),(p2:Person_{name:"苏重孙"})
两种方法都可以达到效果
最终结果为:
match(a)-[r:Parent]->(b) return a, r, b
使用match进行筛选,并且拼装成树状结构:
1. 筛选出子孙绵延四代的树干
match(a)-[r1:Parent]->(b)-[r2:Parent]->(c)-[r3:Parent]->(d) return a, b, c, d
2. 筛选出存在三代子孙的树干
match(a)-[r1:Parent]->(b)-[r2:Parent]->(c) return a, b, c
可以发现,查出来的图形虽然是只有一条链路,但其实代表两条数据,各三级节点,如下
那如果要查询某个节点开始的三级结构呢?
3. 筛选出某个节点为顶点的三代子孙树干
match(a{name:"苏洵"})-[r1:Parent]->(b)-[r2:Parent]->(c) return a, b, c
这样就只筛选得到的是以“苏洵”为顶点的三级结构,依次是“苏洵”-->“苏轼”-->“苏孙”
可看到只有一条数据
neo4j的搭建和实例使用相关推荐
- 用Python中的py2neo库操作neo4j,搭建简单关联图谱—基于家有儿女中的人物关系
我第一次建立关联图谱用的是R语言,通过写代码帮公安挖掘团伙犯罪,并用图形展示团伙之间的关联关系.如有需要请关注 "阿黎逸阳的代码" 公众号的后续文章,会手把手教大家用R搭 ...
- springmvc环境搭建及实例
一. 软件环境 eclipse-jee-mars-R-win32-x86_64 jdk1.7.0_79 apache-tomcat-7.0.52 spring-framework-3.2.0.RELE ...
- 【DG】在Linux平台上搭建单实例的dataguard--duplicate
[DG]在Linux平台上搭建单实例的dataguard--duplicate 一 : 实验环境介绍 *** 鉴于生产环境均采用 64 位系统和数据库软件,本实验也将采用这个标准 *** 采用vmwa ...
- 服务端Skynet(五)——如何搭建一个实例
服务端Skynet(五)--如何搭建一个实例 文章目录 服务端Skynet(五)--如何搭建一个实例 1.配置文件 2.服务消息分发与回应(call/send) 3.通信(server/client) ...
- Neo4j REST API使用实例---ttlsa教程系列之neo4j(二)
为什么80%的码农都做不了架构师?>>> ttlsa教程系列之neo4j---(二)Neo4j REST API使用实例 一. 简介 通过REST API方式与Neo4j进行交 ...
- 【SSH网上商城】struts搭建及实例
[简单介绍] Struts是最早的java开源框架之一,它是MVC设计模式的一个优秀实现. Struts定义了通用的Controller(控制器),通过配置文件(通常是 Struts ...
- 04. Redis 环境搭建-单实例
单节点的Redis 在生产环境并不多见, 但是对于日常的学习和本地开发测试, 还是经常用到的.比如说在日常工作中, 想测试某个API的用法, 那么在本地快速起一个Redis 单实例还是非常有必要的. ...
- 从定标准到搭流程,看UWA性能保障体系搭建的实例分享
本次分享选自UWA DAY 2022 "UWA性能保障体系进一步拓展"议题,来自侑虎科技CTO张强的分享.从 "性能评分"."推荐值".&q ...
- SSM框架搭建简单实例
简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发的框架,对于新手来说也是比较容易学习入门的.虽说容易,但在框架搭建过程中仍然遇到了许多问题,因此用实 ...
最新文章
- 教你一招“恶意修改主页”的处理办法
- python评语生成_如何评价生成模型框架 ZhuSuan?
- 网站内链优化中有哪些常见的形式?
- python视频教程云盘-Python自动化测试视频教程【百度云盘下载】
- sqlserver 循环赋值变量
- 【C 语言】数据类型本质 ( 数据类型 | 数据类型本质 | 数组地址 | 数组首元素地址 )
- Facebook开源算法代码库,轻松复现前沿视频理解模型
- Atitit 热烈庆祝读经器项目圆满完成
- Windows7系统资源怎么看?
- 从72小时到1分钟,数据如何快速响应业务需求?
- php 实现贪吃蛇游戏,HTML5 贪吃蛇游戏实现思路及源代码_html5教程技巧
- php能做的事情,成就事业要做的十件事
- Redis学习笔记三:Redis的数据类型
- LuaForUnity10:框架配置与AssetBundle
- 8位单片机003兼容替换意法半导体STM8S003F3P6
- RELU激活函数作用
- c语言编程泰勒展开式计算,用C语言实现一个泰勒展开式的计算
- Windows命令:tracert
- 基于GIS和Python的百度地图街景爬取
- OOK电路在电调天线远端控制器(RCU)中的应用