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
这样就只筛选得到的是以“苏洵”为顶点的三级结构,依次是“苏洵”-->“苏轼”-->“苏孙”
可看到只有一条数据
原文地址:https://blog.csdn.net/u010086122/article/details/82390945
neo4j的搭建和实例使用的更多相关文章
- 基于Docker的TensorFlow机器学习框架搭建和实例源码解读
概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的 ...
- springmvc环境搭建及实例
一. 软件环境 eclipse-jee-mars-R-win32-x86_64 jdk1.7.0_79 apache-tomcat-7.0.52 spring-framework-3.2.0.RELE ...
- SpringMVC笔记——SSM框架搭建简单实例
落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发 ...
- monkeyrunner之环境搭建及实例(三)
Monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器. 一.Monkeyrunner简介 1.MOnkeyrunner相对Mo ...
- CENTOS6.6上搭建单实例ORACLE12C
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 自己在centos6.6上搭建的单实例oracle12c 由 ...
- TFS2018环境搭建一单实例安装(适用于小型团队)
1.服务器配置 阿里云 单核CPU,2GB的RAM,SSD硬盘,安装TFS实例 TFS2018要求SQL Server 2016 (minimum SP1)以上.其要求有以下几点: (1).安装SQL ...
- Struts2环境搭建及实例解析
与struts1框架的使用一样,struts2的环境搭建及使用同样分为以下几个步骤: 1. 引入jar包(这里以struts2.2.3为例),所需jar包有以下几个: a) s ...
- Redis实战篇(一)搭建Redis实例
今天是Redis实战系列的第一讲,先从如何搭建一个Redis实例开始. 下面介绍如何在Docker.Windows.Linux下安装. Docker下安装 1.查看可用的 Redis 版本 访问 Re ...
- mysql 在一个实例运行情况下再搭建一个实例
配置mysql服务 详细步骤,请参考(http://study.lishiming.net/chapter17.html#mysql), 阿铭只把简单步骤写一下. 根据阿铭提供的地址,假如你已经搭建好 ...
随机推荐
- shell 命令 用户管理
1. 查看保存用户相关信息的文件 [ cat /etc/passwd ] [linux : x : 1000 : 1000 : linux,,, : ...
- JAVA数据结构之红-黑树
本篇博客我会重点介绍对红-黑树的理解,重点介绍红-黑树的查找,这里我们将要讨论的算法称为自顶向下插入,也就是把沿着树向下查找插入点 Ⅰ.平衡树和非平衡树 平衡树和非平衡树:当插入一组数据关键字是按照升 ...
- 实现虚拟机VMware上Linux与本机windows互相复制与粘贴的问题
解决方法:只需要在Linux系统中安装一个vmware-tools的工具 1.选择虚拟机菜单,有安装vmware tools 工具的选项 点击之后,在Linux的桌面下会出现 VMwareTools. ...
- Java Collection - HashMap
HashMap源码解析 java.util.HashMap 类 https://www.cnblogs.com/ysocean/p/8711071.html HashMap线程不安全的原因 https ...
- Python: map和reduce
可以先google一篇论文:MapReduce: SImplified Data Processing on Large Clusters 1. map map()函数接收2个参数:一个是函数,一个是 ...
- 织梦怎么调用栏目SEO标题
点击[模板][默认模板管理]找到模板文件名[list_article.htm],点击模板后面的修改,弹出修改模板代码页面.更改模板文件中<title>{dede:field.title/} ...
- (转)H264--1--编码原理以及I帧B帧P帧 .
转:http://blog.csdn.net/yangzhongxuan/article/details/8003504 ---------------------- 前言 ------------- ...
- iOS开发UIMotionEffect运动视觉效果
1.UIMotionEffect简介 在iOS7.0推出了UIMotionEffect运动视觉效果,就是从屏幕偏移不同角度.看到的效果不同! NS_CLASS_AVAILABLE_IOS(7_0) @ ...
- Spark 读写数据、抽象转换 拾遗
读 package com.test.spark import org.apache.spark.sql.{Dataset, Row, SaveMode, SparkSession} /** * @a ...
- 清晰化算法在DSP上的实现
清晰化算法在DSP TIDM642上的实现,之前的部分工作摘要于此. 1 DSP平台的选择 1.1 DM642 Evolution Module 选择现有的DM642 Evolution Module ...