Neo4j简介:
Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下,而不是严格、静态的表中。但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。Neo4j因其嵌入式、高性能、轻量级等优势,越来越受到关注。
- 例子:https://grapheco.org/InteractiveGraph/dist/examples/example1.html
- 官网:https://neo4j.com/
- 教程:https://www.w3cschool.cn/neo4j/neo4j_need_for_graph_databses.html
Neo4j安装
JDK安装:https://www.oracle.com/java/technologies/javase-downloads.html(安装社区版)
Neo4j安装:https://neo4j.com/download-center/
配置jdk,neo4j的环境变量
(注意neo4j-4.2.4社区版对应的jdk的版本在11-14之间,太高或太低都不行)
java和neo4j的环境变量都是在系统变量path中添加bin子文件夹目录。
Neo4j运行
运行 neo4j concole 打开服务,进入显示的网址即可。
如下图即为成功:
Neo4j基本操作
创建操作
以官方教程为例创建人,电影和关系
CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})
CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})
CREATE (Carrie:Person {name:'Carrie-Anne Moss', born:1967})
CREATE (Laurence:Person {name:'Laurence Fishburne', born:1961})
CREATE (Hugo:Person {name:'Hugo Weaving', born:1960})
CREATE (LillyW:Person {name:'Lilly Wachowski', born:1967})
CREATE (LanaW:Person {name:'Lana Wachowski', born:1965})
CREATE (JoelS:Person {name:'Joel Silver', born:1952})
CREATE
(Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix),
(Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix),
(Laurence)-[:ACTED_IN {roles:['Morpheus']}]->(TheMatrix),
(Hugo)-[:ACTED_IN {roles:['Agent Smith']}]->(TheMatrix),
(LillyW)-[:DIRECTED]->(TheMatrix),
(LanaW)-[:DIRECTED]->(TheMatrix),
(JoelS)-[:PRODUCED]->(TheMatrix)
.............
with TomH as a
MATCH (a)-[:ACTED_IN]->(m)<-[:DIRECTED]-(d) RETURN a,m,d LIMIT 10;
视图:
查询:
- 查询日期大于1990小于2000的电影
MATCH (nineties:Movie) WHERE nineties.released >= 1990 AND nineties.released < 2000 RETURN nineties.title
- 查询电影Cloud Atlas的演员
MATCH (cloudAtlas {title: "Cloud Atlas"})<-[:DIRECTED]-(directors) RETURN directors.name
- 找到2个人之间的最短路径
MATCH p=shortestPath(
(bacon:Person {name:"Kevin Bacon"})-[*]-(meg:Person {name:"Meg Ryan"})
)
RETURN p
清除
- 清除全部包含关系
MATCH (n) DETACH DELETE n
- 只清除节点
MATCH (n) DELETE n