图形数据库之Neo4j学习(一)

image

最近工做须要使用图形数据库来构建知识图谱,目前基于Java使用最普遍的有两个开源框架html

(1) neo4j前端

社区版 免费html5

企业版 收费java

(2) Titanlinux

全开源android

咱们这次选择了neo4j的社区版,主要是项目紧,neo4j比较稳定,Titan可能比较新,虽然Titan确定是将来的主流,我我的是看好Titan的,Neo4j无法存储巨大的一张关系图 ,由于他不支持分片,而Titan是天生分布式的,能够构建在Hbase,Cassandra之上外加+ES或者Solr存储索引,很是强大,再此不在过多 对比两个图形数据库的优缺点,后面有机会再来专门写文章叙述。ios

什么是图形数据库?

图形数据库(Graph Database)是利用计算机将点、线、画霹图形基本元素按必定数据结同造型存储的数据集合。数据库

最先应该使用在社交场景,好比QQ的几度空间关系图,除了社交应用以外,图数据库同不少应用能够工做。不少应用能够天然扩展使用图形类型的关系。好比,好多内嵌在社交应用中的推荐系统经常都是基于图形的系统。图数据库由一系列结点和边界组成;每个结点表明了一个实体,每个边界表明了两个结点之间的一种链接或者关系。swift

Neo4j的安装

本次方便快速开发测试,安装平台是在Windows上。c#

下载地址: https://neo4j.com/download/community-edition/

选择版本下载 image

下载后,解压到某个盘符下面,我这里用的最新的的版本,须要JDK8支持,这一点须要注意下 ,JDK8我已经安装,下载解压后,须要先配置Neo4j的环境变量:

NEO4J_HOME = E:\2016\neo4j-community-3.0.6
而后PATH里面加入:%NEO4J_HOME%\bin

若是是Liunx:
 
NEO4J_HOME=/home/search/neo4j 
export CLASSPATH=$CLASSPATH:NEO4J_HOME/lib
export PATH=$PATH:$NEO4J_HOME/bin

打开cmd窗口后,切到neo4j根目录,执行:

neo4j.bat会给出下面的几个参数提示

start
stop
console
restart
status
install-service
uninstall-service
Verbose

而后咱们执行

neo4j.bat console

以控制台方式启动,方便调试开发

启动以后,在浏览器访问http://localhost:7474

默认的用户名和密码是neo4j neo4j 登陆以后须要修改 image

在页面最上面的cypher的执行器里面,插入一些数据:

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'}),
 (p6: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)

而后查看关系图以下: image

至此,已经入门了,后面会记录neo4j的概念,配置,cyper查询语法,以及neo4j的java集成使用 , jdbc使用等等

有什么问题能够扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。 技术债不能欠,健康债更不能欠, 求道之路,与君同行。

输入图片说明

相关文章
相关标签/搜索