当前位置: 首页 > news >正文

neo4j入门开发,以及在sns关系中的应用

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

neo4j入门开发,以及在sns关系中的应用 博客分类: neo4j

一些非常好的资料:

  • 基于java api的开发

http://www.infoq.com/cn/articles/graph-nosql-neo4j

  • java开发入门教程:

http://www.neo4j.org.cn/basic-tutorials/

  • cypher语言学习

http://neo4j.com/developer/cypher/

 

Neo4j是一个java开发的图数据库,它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。相对于关系数据库来说,图数据库善于处理大 量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。 Neo4j重点解决了拥有大量连接的传统RDBMS在查询时出现的性能衰退问题。Neo4j还提供了非常快的图算法、推荐系统和OLAP风格的分析,而这 一切在目前的RDBMS系统中都是无法实现的。它提供了广泛使用的REST接口,能够方便地集成到基于JAVA、PHP、.NET和JavaScript 的环境里。

Neo4j 使用cypher语言进行查询

创建节点
CREATE (ee:员工 { 姓名: "张勇", 来自: "中国" , 年龄 : 99 })

• 通过CREATE创建一个节点
• () 代表一个节点
• ee:员工 变量'ee',标签label是 '员工'
• {} 包含了属性

 

 

自己动手写个Demo试试:

复制代码
CREATE (p1:Person {name:'胡兴炯', born:1991, interest:'mac,ios,旅游', goodat:'java,swift,objectiveC'})
CREATE (p2:Person {name:'张勇', born:1990,  interest:'android', goodat:'java,android'})
CREATE (p3:Person {name:'成文龙', born:1990, interest:'linux,hadoop', goodat:'linux,java,android'})
CREATE (p4:Person {name:'王昕', born:1978, interest:'wpf,noSQL,旅游', goodat:'java,c#'})
CREATE (p5:Person {name:'周开琪', born:1977 , interest:'管理', goodat:'管理,'})
CREATE (p6:Person {name:'徐锦亮', born:1985,  interest:'前端', goodat:'前端,html5'})
CREATE (p8:Person {name:'徐辉霞', born:1990,  interest:'管理,旅游', goodat:'管理,采购'})
CREATE (p9:Person {name:'黄廷鹏', born:1992,  interest:'OA', goodat:'java'})
CREATE (p10:Person {name:'史乐乐', born:1991,  interest:'OA,旅游', goodat:'管理'})

CREATE (p1)-[:认识]->(p2)
CREATE (p1)-[:认识]->(p3)
CREATE (p1)-[:认识]->(p4)
CREATE (p1)-[:认识]->(p5)
CREATE (p1)-[:认识]->(p9)

CREATE (p2)-[:认识]->(p1)
CREATE (p2)-[:认识]->(p3)
CREATE (p2)-[:认识]->(p4)
CREATE (p2)-[:认识]->(p5)
CREATE (p2)-[:认识]->(p9)

CREATE (p3)-[:认识]->(p1)
CREATE (p3)-[:认识]->(p2)
CREATE (p3)-[:认识]->(p4)
CREATE (p3)-[:认识]->(p5)
CREATE (p3)-[:认识]->(p9)

CREATE (p4)-[:认识]->(p1)
CREATE (p4)-[:认识]->(p2)
CREATE (p4)-[:认识]->(p3)
CREATE (p4)-[:认识]->(p5)
CREATE (p4)-[:认识]->(p9)

CREATE (p5)-[:认识]->(p1)
CREATE (p5)-[:认识]->(p2)
CREATE (p5)-[:认识]->(p3)
CREATE (p5)-[:认识]->(p4)
CREATE (p5)-[:认识]->(p6)
CREATE (p5)-[:认识]->(p8)
CREATE (p5)-[:管理]->(p1)
CREATE (p5)-[:管理]->(p2)
CREATE (p5)-[:管理]->(p3)
CREATE (p5)-[:管理]->(p4)
CREATE (p5)-[:管理]->(p6)

CREATE (p6)-[:认识]->(p5)
CREATE (p6)-[:认识]->(p4)
CREATE (p6)-[:夫妻]->(p8)

CREATE (p9)-[:认识]->(p1)
CREATE (p9)-[:认识]->(p2)
CREATE (p9)-[:认识]->(p3)
CREATE (p9)-[:认识]->(p10)
CREATE (p9)-[:单相思]->(p10)

CREATE (p10)-[:认识]->(p9)
复制代码

运行完上面脚本的效果

 

 

查找所有擅长goodat“管理”的人
MATCH (n:Person ) WHERE n.goodat =~ '.*管理.*' return n;

 

查找成文龙“认识“的人
MATCH (n:Person { name: '成文龙' })-[:认识]-(neighbors) RETURN n,neighbors


查找所有“单相思”的人
MATCH (n:Person)-[:单相思]-(neighbors) RETURN n,neighbors

查找周开琪“管理”的人
MATCH (n:Person { name: '周开琪' })-[:管理]-(neighbors) RETURN n,neighbors

查找徐辉霞“认识“的人 (2层关系网络)
MATCH (n:Person { name: '徐辉霞' })-[:认识*1..2]-(neighbors) RETURN n, collect(DISTINCT neighbors)
查找徐辉霞“认识“的人 (3层关系网络)
MATCH (n:Person { name: '徐辉霞' })-[:认识*1..3]-(neighbors) RETURN n, collect(DISTINCT neighbors)

(图略)

 

徐锦亮找到史乐乐的所有最短路径 (不超过4层)

MATCH p=allShortestPaths(
(a:Person { name: '徐锦亮' })-[:认识*..4]-(b:Person { name: '史乐乐'})
)
RETURN p

 

删除所有节点和关系

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

 

 

http://www.cnblogs.com/starcrm/p/5033117.html

转载于:https://my.oschina.net/xiaominmin/blog/1599400

相关文章:

  • Redis 替代品SSDB Java客户端
  • 获取URL地址中的GET参数
  • hadoop yarn 配置
  • android文件关联之mime type
  • 两年前端职业生涯总结
  • 云数据库Memcache版使用教程
  • 8.2. GUI
  • alertmanager源码阅读 - dispatcher
  • java8-模拟hadoop
  • 第 13 章 Barman for PostgreSQL
  • spark 源码编译 standalone 模式部署
  • 在华为设备上实施GRE隧道和IPSEC ***
  • 如何在数据库动态建表
  • 十年阿里java架构师的六大设计原则和项目经验
  • 基于 python + WebDriverAgent 的“跳一跳”小程序高分教程
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 11111111
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Druid 在有赞的实践
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • php的插入排序,通过双层for循环
  • Vue2.0 实现互斥
  • 包装类对象
  • 分类模型——Logistics Regression
  • 高程读书笔记 第六章 面向对象程序设计
  • 诡异!React stopPropagation失灵
  • 精彩代码 vue.js
  • 力扣(LeetCode)357
  • 两列自适应布局方案整理
  • 前端设计模式
  • 首页查询功能的一次实现过程
  • 用简单代码看卷积组块发展
  • AI算硅基生命吗,为什么?
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (3)STL算法之搜索
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (二)WCF的Binding模型
  • (二)学习JVM —— 垃圾回收机制
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (论文阅读11/100)Fast R-CNN
  • (十一)图像的罗伯特梯度锐化
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)http协议
  • (转)Windows2003安全设置/维护
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .aanva
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET Core Web APi类库如何内嵌运行?
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET设计模式(2):单件模式(Singleton Pattern)