图形数据库之Neo4j学习(一)
最近工作需要使用图形数据库来构建知识图谱,目前基于Java使用最广泛的有两个开源框架
(1) neo4j
社区版 免费
企业版 收费
(2) Titan
全开源
我们此次选择了neo4j的社区版,主要是项目紧,neo4j比较稳定,Titan可能比较新,虽然Titan肯定是未来的主流,我个人是看好Titan的,Neo4j没法存储巨大的一张关系图 ,因为他不支持分片,而Titan是天生分布式的,可以构建在Hbase,Cassandra之上外加+ES或者Solr存储索引,非常强大,再此不在过多 对比两个图形数据库的优缺点,后面有机会再来专门写文章叙述。
什么是图形数据库?
图形数据库(Graph Database)是利用计算机将点、线、画霹图形基本元素按一定数据结同造型存储的数据集合。
最早应该使用在社交场景,比如QQ的几度空间关系图,除了社交应用之外,图数据库同很多应用可以工作。很多应用可以自然扩展使用图形类型的关系。比如,好多内嵌在社交应用中的推荐系统常常都是基于图形的系统。图数据库由一系列结点和边界组成;每一个结点代表了一个实体,每一个边界代表了两个结点之间的一种连接或者关系。
Neo4j的安装
本次方便快速开发测试,安装平台是在Windows上。
下载地址: https://neo4j.com/download/community-edition/
选择版本下载
下载后,解压到某个盘符下面,我这里用的最新的的版本,需要JDK8支持,这一点需要注意下 ,JDK8我已经安装,下载解压后,需要先配置Neo4j的环境变量:
NEO4J_HOME = E:2016neo4j-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会给出下面的几个参数提示startstopconsole
restartstatusinstall-serviceuninstall-service
Verbose
然后我们执行
neo4j.bat console
以控制台方式启动,方便调试开发
启动之后,在浏览器访问http://localhost:7474
默认的用户名和密码是neo4j neo4j 登录之后需要修改
在页面最上面的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)
然后查看关系图如下:
至此,已经入门了,后面会记录neo4j的概念,配置,cyper查询语法,以及neo4j的java集成使用 , jdbc使用等等
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android 天气APP(三)访问天气API与数据请求
- Android 天气APP(四)搭建MVP框架与使用
- Android 天气APP(五)天气预报、生活指数的数据请求与渲染
- Android 天气APP(六)旋转风车显示风力、风向
- Android 天气APP(七)城市切换 之 城市数据源
- Elasticsearch: Reindex接口
- Android Studio 更新版本之后报错: Cannot access android.arch.lifecycle.ViewModelStoreOwner
- Android各版本查询和开启悬浮窗权限
- RuntimeException: setAudioSource failed异常
- Java&Android获取当前日期、时间、星期几、获取指定格式的日期时间、时间戳工具类包含使用示例
- Android TV 开发之 TV视频播放器
- Android MediaPlayer 音乐播放器扫描 本地音乐、上一曲、下一曲切歌、播放本地音乐
- 1小时真正掌握正则表达式
- Android Studio 安装配置教程 - Windows(详细版)
- Android 天气APP(八)城市切换 之 自定义弹窗与使用