Appearance
Neo4j 核心概念
节点(Node)
节点是 Neo4j 中最基本的数据存储单元,用于表示实体。
节点的特点:
- 可以有一个或多个标签(Label)
- 可以包含多个属性(Property)
- 通过关系与其他节点连接
节点的示例:
- 人:表示用户、员工等
- 地点:表示城市、建筑物等
- 物品:表示产品、书籍等
- 事件:表示会议、活动等
关系(Relationship)
关系用于连接两个节点,表示它们之间的联系。
关系的特点:
- 有方向:从一个节点指向另一个节点
- 有类型:定义关系的类型
- 可以包含属性
- 始终有开始节点和结束节点
关系的示例:
(:Person)-[:FRIENDS_WITH]->(:Person):表示两个人是朋友(:Person)-[:WORKS_AT]->(:Company):表示人在公司工作(:Book)-[:WRITTEN_BY]->(:Author):表示书由作者撰写
属性(Property)
属性是键值对,用于存储节点和关系的具体信息。
属性的特点:
- 键是字符串
- 值可以是各种类型:字符串、数字、布尔值、数组等
- 可以为节点和关系添加多个属性
属性的示例:
- 节点属性:
{name: 'John', age: 30, email: 'john@example.com'} - 关系属性:
{since: 2020, strength: 5}
标签(Label)
标签用于对节点进行分类,一个节点可以有多个标签。
标签的特点:
- 标签是字符串
- 用于组织和索引节点
- 可以用于查询过滤
标签的示例:
:Person:表示人物节点:Company:表示公司节点:Product:表示产品节点
路径(Path)
路径是由节点和关系组成的序列,表示从一个节点到另一个节点的路径。
路径的特点:
- 由连续的节点和关系组成
- 可以是任意长度
- 可以用于查询和分析
路径的示例:
- 短路径:
(:Person)-[:FRIENDS_WITH]->(:Person) - 长路径:
(:Person)-[:FRIENDS_WITH]->(:Person)-[:WORKS_AT]->(:Company)
图模式(Graph Pattern)
图模式是用于匹配图中特定结构的模式描述。
图模式的特点:
- 使用 Cypher 语法描述
- 用于查询和匹配数据
- 可以包含节点、关系和属性
图模式的示例:
- 匹配朋友关系:
(a:Person)-[:FRIENDS_WITH]->(b:Person) - 匹配工作关系:
(a:Person)-[:WORKS_AT]->(b:Company)
示例图结构
下面是一个简单的图结构示例:
(:Person {name: 'John', age: 30})-[:FRIENDS_WITH {since: 2010}]->(:Person {name: 'Alice', age: 28})
(:Person {name: 'John'})-[:WORKS_AT {since: 2015}]->(:Company {name: 'Neo4j', industry: 'Software'})
(:Company {name: 'Neo4j'})-[:LOCATED_IN]->(:City {name: 'Stockholm', country: 'Sweden'})小结
Neo4j 的核心概念包括节点、关系、属性、标签、路径和图模式。这些概念构成了 Neo4j 图数据库的基础,理解这些概念对于使用 Neo4j 非常重要。
在下一节中,我们将介绍如何搭建和配置 Neo4j 环境,包括安装、配置和启动服务。