Skip to content

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 环境,包括安装、配置和启动服务。