图形数据库之Neo4j学习(一)
[img]http://dl2.iteye.com/upload/attachment/0120/3433/e84b4219-9e96-31fb-927f-241366d91c74.png[/img]
最近工作需要使用图形数据库来构建知识图谱,目前基于Java使用最广泛的有两个开源框架
(1) neo4j
社区版 免费
企业版 收费
(2) Titan
全开源
我们此次选择了neo4j的社区版,主要是项目紧,neo4j比较稳定,Titan可能比较新,虽然Titan肯定是未来的主流,我个人是看好Titan的,Neo4j没法存储巨大的一张关系图 ,因为他不支持分片,而Titan是天生分布式的,可以构建在Hbase,Cassandra之上外加+ES或者Solr存储索引,非常强大,再此不在过多
对比两个图形数据库的优缺点,后面有机会再来专门写文章叙述。
什么是图形数据库?
图形数据库(Graph Database)是利用计算机将点、线、画霹图形基本元素按一定数据结同造型存储的数据集合。
最早应该使用在社交场景,比如QQ的几度空间关系图,除了社交应用之外,图数据库同很多应用可以工作。很多应用可以自然扩展使用图形类型的关系。比如,好多内嵌在社交应用中的推荐系统常常都是基于图形的系统。图数据库由一系列结点和边界组成;每一个结点代表了一个实体,每一个边界代表了两个结点之间的一种连接或者关系。
Neo4j的安装
本次方便快速开发测试,安装平台是在Windows上。
下载地址:
[url]https://neo4j.com/download/community-edition/[/url]
选择版本下载
[img]http://dl2.iteye.com/upload/attachment/0120/3435/27f401d9-9ae5-3c55-ac2a-83458cb8e8f2.png[/img]
下载后,解压到某个盘符下面,我这里用的最新的的版本,需要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/libexport PATH=$PATH:$NEO4J_HOME/bin
打开cmd窗口后,切到neo4j根目录,执行:
neo4j.bat会给出下面的几个参数提示
startstopconsolerestartstatusinstall-serviceuninstall-serviceVerbose
然后我们执行
neo4j.bat console
以控制台方式启动,方便调试开发
启动之后,在浏览器访问http://localhost:7474
默认的用户名和密码是neo4j neo4j 登录之后需要修改
[img]http://dl2.iteye.com/upload/attachment/0120/3437/1cc00524-c644-3c1d-9a3c-0e0ad59ace5b.png[/img]
在页面最上面的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)
然后查看关系图如下:
[img]http://dl2.iteye.com/upload/attachment/0120/3439/99b280b1-20f2-3f22-afe5-ae17f40f6e32.png[/img]
至此,已经入门了,后面会记录neo4j的概念,配置,cyper查询语法,以及neo4j的java集成使用 , jdbc使用等等
[b][color=green][size=large]
有什么问题可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。
技术债不能欠,健康债更不能欠, 求道之路,与君同行。
[/size][/color][/b]
[img]http://dl2.iteye.com/upload/attachment/0104/9948/3214000f-5633-3c17-a3d7-83ebda9aebff.jpg[/img]
图形数据库之Neo4j学习(一)相关推荐
- Neo4j 学习笔记 1:属性图
本文章内容转载自 Neo4j - 随笔分类 - 悦光阴 - 博客园 . 属性图: 在深入学习图形数据库之前,首先理解 属性图 的基本概念. 属性图是由 顶点(Vertex),边(Edge),标签(La ...
- neo4j 学习-2
Neo4j 查询例句 MATCH (john {name: 'John'})-[:friend]->()-[:friend]->(fof) RETURN john.name, fof.na ...
- 图数据库 Neo4j 学习总结
Neo4j是一个NoSQL的图数据库管理系统,这里所说的图是指图论中的图这种数据结构,图是一个比线性表和树更高级的数据结构. Neo4j存储的数据是一个属性图,其中,节点表示一个实体,节点的属性表示实 ...
- Neo4j学习(2)--简单入门
1.Neo4j属性图数据模型 节点:包含多个属性和标签.一个节点就是一条数据 属性:键值对形式 关系:单向与双向,连接节点,也可包含多个属性和标签 标签:表示节点和关系的类型,可以有多个,同时可以通过 ...
- 图数据库Neo4j学习笔记系列
作者简介:20年IT工作经验,曾在华为.HP.移动.电网等国内外知名IT企业任职:关注领域包括证券.航空.制造.电信.电网等.在数据库开发和优化.数据仓库.系统架构.大中型项目管理.部门管理.数据挖掘 ...
- Neo4j 学习篇一
以下是学习课本时对知识点的整理,以及部分自己理解. 图是什么? 简单理解,图就是顶点和边的集合或者可以理解成是一些节点和关联这些节点的联系的集合. 在图中:实体表现成节点,实体与其他实体连接的方式表现 ...
- Neo4j图形数据库教程
目录 参考 图数据库.关系型数据库 Delete.Remove 案例 1.创建节点 2.创建结构关系 3.显示结果 3.1 一般显示 3.2.筛选出子孙绵延四代的树干 3.3. 筛选出存在三代子孙的树 ...
- 图形数据库neo4j_使用Neo4j和PHP发现图形数据库
图形数据库neo4j In this post, we'll be learning about Neo4j, the leading graph database, and ways to use ...
- 为什么选择图形数据库,为什么选择Neo4j?
最近在抓取一些社交网站的数据,抓下来的数据用MySql存储.问我为什么用MySql,那自然是入门简单,并且我当时只熟悉MySql.可是,随着数据量越来越大,有一个问题始终困扰着我,那就是社交关系的存储 ...
最新文章
- 关于SQLServer2005的学习笔记——约束、Check、触发器的执行顺序
- 二、【绪论】算法和算法评价
- 计算机思维能力培养的核心是什么,计算机基础教学的核心任务是计算思维能力的培养[J]...
- elementui更改el-table表头背景颜色和字体颜色
- DS8100存储系统安装配置之个人总作篇
- luogu_P3345[zjoi2015]幻想乡战略游戏
- [项目管理] ISO900X 标准体系
- M3DGIS三维电子沙盘开发教程第52课无人机倾斜摄影全景三维建模
- 分享一个VS2010插件 GBackupSolution Add-in for Visual Studio 2008/2010
- Linux之Redhat7如何破解密码
- 软件工程——背单词软件对比
- 开源项目——小Q聊天机器人V1.0
- axios 的响应结构
- 反编译工具ILSpy
- iTunes Connect 人员如何使用testflight安装测试版ios应用
- X 国王有一个地宫宝库-dfs
- mysql的COALESCE函数、NULLIF函数、IFNULL函数
- 使用python的turtle画国旗
- TCP/IP协议安全
- 矩阵公式tr(AA')=tr(A'A)/tr(AA^T)=tr(A^TA)的推导
热门文章
- PS软件基础学习,抠图小技巧,轻松完成设计中最基础的一步。
- Retrofit2源码分析
- 链表2--JZ25复杂链表的复制JZ36两个链表的第一个公共结点JZ55链表中环的入口结点JZ56删除链表中重复的结点
- 数据挖掘中所需的概率论与数理统计知识,上
- 计算机辅助设计毕业论文,快速阀的计算机辅助设计毕业设计.doc
- 海康威视摄像机SDK二次开发--提取音频保存至文件
- 招生简章 | 欢迎报考中科院空天院网络信息体系技术重点实验室(七室)
- arcgis快速生成图框_轻松搞定MapGIS生成标准图框
- PPT或其他软件作图如何将其转变成.eps格式
- 精美的国外扁平化网页设计作品