2017-12-11 | Knowledge Graph | UNLOCK

Neo4j使用介绍

Neo4j 数据模型元素

  • 节点(Node),图数据库中存储的一个基本元素,可以是任何东西,节点都是 data records 数据记录,一般被用于表示一个实体,比如,可以是明星,电影,公司等
  • 标签(Label),用来将节点进行分组,同一个label属于同一个组,如明星的label可以是明星,人等。一个节点可以拥有多个标签。
  • 关系(Relation),用来连接两个节点,以表示节点间存在的关系,
  • 属性(Properities),用来具体描述节点/关系/标签所有具有的特点

Neo4j 语句

下面就利用一个小数据来构建简单图数据库,以熟悉Neo4j Cypher语言。

创建一个简单Graph Database

1
2
3
4
5
6
7
8
9

// create nodes

CREATE (A:Person {name:"Tom Hanks"}),
(B:Person {name:"Ron Howard"}),
(C:Movie {title: "The DaVinci Code"}),
(A)-[:ACTED_IN {roles:"Robert Langdon"}]->(C),
(A)-[:KNOWS {since:"1987"}]->(B),
(B)-[:DIRECTED]->(C)

说明:

  1. CREATE 用来创建节点和关系
  2. 圆括号内是节点和节点标签,大括号内是节点属性,(Node:Label {property1: property value})
  3. 方括号内为关系及关系属性,[:relation {property1: property}]

根据关系查询节点

1
MATCH (a)-[:ACTED_IN]->(c) RETURN a,c

查询某个关系是否存在

1
MATCH (a:Person)-[:DIRECTED]-(c) RETURN a, c

TBD

评论加载中