图数据库Neo4J的使用..docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图数据库Neo4J的使用.

图数据库Neo4J的使用吴斌 2013.7.5 mailto:wubin@wubin@ 1,图数据库Neo4J的介绍:/learn/neo4j/learn/neo4jNeo4J是个开源的图数据,很好用,轻便灵活,嵌入式,功能强大,而且相关资料比较齐全。按照Neo4J官方网站公布,该数据库可以支持数十亿的节点数:massively scalable, up to several billion nodes/relationships/properties而且支持分布式部署,Master,Slave。对Neo4J的性能和可用性的介绍:/player/6qUmb/native/autoplay/Neo4J的CEO有个视频简单介绍Neo4J:/video/560407472,安装:Neo4J的安装使用非常简单。下载一个稳定版本,解压,运行Neo4j.bat(windows版本) 即可。下载地址/download/download , 目前比较好用的稳定版本是1.9.1。然后可以访问WEB管理界面,地址:http://localhost:7474/webadmin3,Neo4J的使用方式包括:1)可以写程序,添加,更新,用JAVA,Python,PHP, .NET等语言都可以实现。2)可以用命令行,添加,更新,查看,Neo4J提供基于WEB的执行界面,提供类SQL语言执行,这些语言包括Cypher,Gremlin等。 如下图:3)可以基于Neo4J提供的WEB UI界面添加,更新节点和关系,如下:4) 可以使用附加工具(ETL)导入数据。也可以从关系数据库中导入数据。/develop/import4,使用JAVA访问Neo4J:学习材料:/develop/java/chunked/stable/tutorials-java-embedded.htmlNeo4J中节点,边,都可以任意添加属性,边(关系)的可以自定义,是个枚举值,举例:firstNode = graphDb.createNode();firstNode.setProperty( message, Hello, [Node A] , );secondNode = graphDb.createNode();secondNode.setProperty( message, The Graph DB World! [Node B] );relationship = firstNode.createRelationshipTo( secondNode, RelTypes.KNOWS );relationship.setProperty( Reason, Use Neo4j for testing [Edge] , );还有一点很重要,Neo4J可以支持自定义节点类,就是说你可以按照你的需要设计Class做节点,也就是说你可以给每个节点增加任意方法,实现任意功能,这个功能的扩展性非常强。而且Neo4J提供嵌入式程序的能力,你可以把它当做一个Lib来使用,可以在保留其他应用开放方式的情况下,提供图数据库的强大能力。其例子socnet可以在Neo4J的网站上查找。5,Cypher介绍:Cypher是Neo4J自己提供的一种高效类SQL语言,用于图数据和关系查询。关系查询采用一种模式匹配的方式,比较直观。很好的学习材料:/learn/cypher这个Video讲的很清楚:/video建节点:(每个Node,系统会自动建立一个唯一的id,不可修改。下面的ID是Node的属性。)create?n={name:Motion,ID:M001}?return?n;创建关系:start?n=node(14),m=node(20)?create?m-[r:KNOWS]-n?return?r;查询:按id查询(这里的id是系统自动创建的):start?n=node(20)?return?m;查询所有节点:start?n=node(*)?return?n;查询属性,关系:start n=node(9) return n,,n.ID,n.level; //查看指定节点,返回需要的属性start n=node(*) match (n)-[r:SubClassOf]-m return m,n,,n.ID,r; //查找指定关系按关系查询多个节点:start?a?=?node(14)?match?b-[r]-a?return?r,b;start?a?=?node(0)?match?c-[:KNOWS]-b-[:KNOWS]-a?return?a,b,c; //查找两层KNOWS关系的节点start a = node(21) match b-[*]-a return a,b; //查

文档评论(0)

sdgr + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档