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基本操作

创建操作

以官方教程为例创建人,电影和关系


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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的电影

1
MATCH (nineties:Movie) WHERE nineties.released >= 1990 AND nineties.released < 2000 RETURN nineties.title
  • 查询电影Cloud Atlas的演员

1
 MATCH (cloudAtlas {title: "Cloud Atlas"})<-[:DIRECTED]-(directors) RETURN directors.name
  • 找到2个人之间的最短路径

1
2
3
4
MATCH p=shortestPath(
(bacon:Person {name:"Kevin Bacon"})-[*]-(meg:Person {name:"Meg Ryan"})
)
RETURN p

清除

  • 清除全部包含关系

1
MATCH (n) DETACH DELETE n
  • 只清除节点

1
MATCH (n)  DELETE n
 
目前共有0条评论
  • 暂无Trackback
你目前的身份是游客,评论请输入昵称和电邮!