图形数据库之Neo4j安装与学习 - 简书


本站和网页 https://www.jianshu.com/p/05f08b4d456c 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

图形数据库之Neo4j安装与学习 - 简书登录注册写文章首页下载APP会员IT技术图形数据库之Neo4j安装与学习君临天下夜未央关注赞赏支持图形数据库之Neo4j安装与学习什么是图形数据库?
图形数据库(Graph Database)是利用计算机将点、线、画霹图形基本元素按一定数据结同造型存储的数据集合。
最早应该使用在社交场景,比如QQ的几度空间关系图,除了社交应用之外,图数据库同很多应用可以工作。很多应用可以自然扩展使用图形类型的关系。比如,好多内嵌在社交应用中的推荐系统常常都是基于图形的系统。图数据库由一系列结点和边界组成;每一个结点代表了一个实体,每一个边界代表了两个结点之间的一种连接或者关系。
目前基于Java使用最广泛的有两个开源框架
(1) neo4j
社区版 免费
企业版 收费
(2) Titan
全开源
我们此次选择了neo4j的社区版,neo4j比较稳定,Titan可能比较新,虽然Titan肯定是未来的主流,Neo4j没法存储巨大的一张关系图 ,因为他不支持分片,而Titan是天生分布式的,可以构建在Hbase,Cassandra之上外加+ES或者Solr存储索引,非常强大。
Neo4j的安装
1.下载
下载地址: https://neo4j.com/download/community-edition/
或者点击下载,修改版本号后可以根据版本号下载指定版本
https://neo4j.com/artifact.php?name=neo4j-community_windows-x64_3_3_1.exe
2.安装。
下载后安装,安装成功后,start eno4j 选择存放数据库的位置,如:D:\Program Files\Neo4j
20180801143030.png
3.访问
访问地址:http://localhost:7474/browser/
默认用户名:neo4j 密码:neo4j
4.创建图
示例代码
CREATE
(p1:Person {name:'胡兴炯', born:1991, interest:'mac,ios,旅游', goodat:'java,swift,objectiveC'}),
(p2:Person {name:'张勇', born:1990, interest:'android', goodat:'java,android'}),
(p3:Person {name:'成文龙', born:1990, interest:'linux,hadoop', goodat:'linux,java,android'}),
(p4:Person {name:'王昕', born:1978, interest:'wpf,noSQL,旅游', goodat:'java,c#'}),
(p5:Person {name:'周开琪', born:1977 , interest:'管理', goodat:'管理,'}),
(p6:Person {name:'徐锦亮', born:1985, interest:'前端', goodat:'前端,html5,hadoop'}),
(p7:Person {name:'张三', born:1993, interest:'大数据', goodat:'hadoop,html5,java,lucene,elasticsearch,solr'}),
(p8:Person {name:'徐辉霞', born:1990, interest:'管理,旅游', goodat:'管理,采购'}),
(p9:Person {name:'黄廷鹏', born:1992, interest:'OA', goodat:'java'}),
(p10:Person {name:'史乐乐', born:1991, interest:'OA,旅游', goodat:'管理'}),
(p1)-[:认识]->(p2),
(p1)-[:认识]->(p3),
(p1)-[:认识]->(p4),
(p1)-[:认识]->(p5),
(p1)-[:认识]->(p9),
(p2)-[:认识]->(p1),
(p2)-[:认识]->(p3),
(p2)-[:认识]->(p4),
(p2)-[:认识]->(p5),
(p2)-[:认识]->(p9),
(p3)-[:认识]->(p1),
(p3)-[:认识]->(p2),
(p3)-[:认识]->(p4),
(p3)-[:认识]->(p5),
(p3)-[:认识]->(p7),
(p4)-[:认识]->(p1),
(p4)-[:认识]->(p2),
(p4)-[:认识]->(p3),
(p4)-[:认识]->(p5),
(p4)-[:认识]->(p9),
(p5)-[:认识]->(p1),
(p5)-[:认识]->(p2),
(p5)-[:认识]->(p3),
(p5)-[:认识]->(p4),
(p5)-[:认识]->(p6),
(p5)-[:认识]->(p8),
(p5)-[:管理]->(p1),
(p5)-[:管理]->(p2),
(p5)-[:管理]->(p3),
(p5)-[:管理]->(p4),
(p5)-[:管理]->(p6),
(p6)-[:认识]->(p5),
(p6)-[:认识]->(p4),
(p6)-[:夫妻]->(p8),
(p9)-[:认识]->(p1),
(p9)-[:认识]->(p2),
(p9)-[:认识]->(p3),
(p9)-[:认识]->(p10),
(p9)-[:喜欢]->(p10),
(p10)-[:认识]->(p9),
(p10)-[:同事]->(p7)
运行结果:
20180801151438.png
Neo4j实现小demo
(1) 创建自己的"me"节点
CREATE (me:Myself {name:"我"}) RETURN me
(2)创建与自己关系的节点
MATCH (me:Myself {name:"我"}) CREATE (me)-[like:LIKE]->(neo:NeoDatabase {name:"Neo4j" }) RETURN me,like,neo
3)批量创建与自己有关的朋友
MATCH (me:Myself {name:"我"}) FOREACH (name in ["张三","李四","王五","赵六","孙七"] | CREATE (me)-[:FRIEND]->(:Myself {name:name}))
(4) 查看me节点与friend
match (me {name:'我'})-[:FRIEND]->(mf) return me,mf
5)新建朋友圈之外的二度关系
match (neo:NeoDatabase {name : 'Neo4j'})
match (me {name:'我'})-[:FRIEND]->(mf)
match (anna {name:'张三'})
create (ama:Myself {name:'周八'})
create (ama)-[:WORKED_WITH]->(neo)
create (anna)-[:FRIEND]->(ama)
return me,mf,neo,anna,ama
(6) 查询:我通过朋友圈中的谁来学习neo4j
match (me:Myself {name:"我"})
match (expert)-[:WORKED_WITH]->(neo:NeoDatabase {name:'Neo4j'})
match path = shortestPath((me)-[:FRIEND*..5]-(expert))
return path,me,expert,neo
** 注意,此过程单个步骤不可重复执行,否则最后输出的node及其多。**
四、列举几个neo4j删除命令:
删除节点之前需先将关系删除
# 删除节点之前先要删除关系
match (me {name:'我'})-[r:FRIEND]-(mf)
detach delete r
match (Amanda {name:'周八'})-[r:WORKED_WITH]->(neo {name:'NeoDatabase'})
detach delete r
推荐阅读更多精彩内容关于Mongodb的全面总结关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...中v中阅读 30,539评论 2赞 89数据库的简单学习需要原文的可以留下邮箱我给你发,这里的文章少了很多图,懒得网上粘啦 1数据库基础 1.1数据库定义 1)数据库(D...极简纯粹_阅读 6,485评论 0赞 46图数据库与关系型数据库的区别与联系最近我在用图形数据库来完成对一个初创项目的支持。在使用过程中觉得这种图形数据库实际上挺有意思的。因此在这里给大家做...kingZXY2009阅读 1,487评论 0赞 5倾听餐桌上的哭泣倾听餐桌上的哭泣 劝善行 一念一诗篇,篇篇记善言 劝人多向善,少食鱼虾肉 食素身自安,行善路自宽 身安且路宽,快乐...文君45313阅读 411评论 1赞 0亲情系列丨 何以无忧(2)曾经如珠如宝,一夕之间世界颠覆。父母反目、骨肉分离,一个稚嫩的心灵该如何面对这场亲情的变故,走向成长之路?请关注短...幻小凡阅读 230评论 0赞 218.1.11 语言是武器,积极向上的话语让人心里为之一振,开心不已。 打压讽刺的话语让人觉得压抑,生活黯然无光,容易滋生...斐丽希娅阅读 79评论 0赞 0AB教练共享会员上课流程1.统筹交接工作:统筹训练计划,交接学员情况,所以教练同时对训练计划负责,根据不同训练周期制定合适的训练计划,需要...我是林瓜瓜阅读 678评论 0赞 1评论2赞55赞6赞赞赏更多好文