Neo4j是一个java开发的图数据库,它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。相对于关系数据库来说,图数据库善于处理大量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。Neo4j重点解决了拥有大量连接的传统RDBMS在查询时出现的性能衰退问题。Neo4j还提供了非常快的图算法、推荐系统和OLAP风格的分析,而这一切在目前的RDBMS系统中都是无法实现的。它提供了广泛使用的REST接口,能够方便地集成到基于PHP、.NET和JavaScript的环境里。
Neo4j 使用cypher语言进行查询
创建节点
CREATE (ee:员工 { 姓名: "张勇", 来自: "中国" , 年龄 : 99 })
• 通过CREATE创建一个节点
• () 代表一个节点
• ee:员工 变量‘ee‘,标签label是 ‘员工‘
• {} 包含了属性
查询
MATCH (ee:员工) WHERE ee.姓名 = "张勇" RETURN ee;
•MATCH 用来查询节点和关系
•(ee:Person) 代表一个节点 标签是 ‘员工‘,ee是变量名
•WHERE 不解释
•ee.姓名 = "张勇" 过滤 姓名 = "张勇"的节点
•RETURN 输出
创建关系
节点和节点之间可以建立多个关系:
MATCH (a:Person { name: ‘Ann‘ }), (b:Person { name: ‘Dan‘ })
CREATE (a)-[:KNOWS]->(b)
MATCH (a:Person { name: ‘Ann‘ }), (b:Person { name: ‘Dan‘ }) CREATE (a)-[:从属于]->(b)
基于java api的开发
http://www.infoq.com/cn/articles/graph-nosql-neo4j
java开发入门教程:
http://www.neo4j.org.cn/basic-tutorials/
cypher语言学习
http://neo4j.com/developer/cypher/