1. Neo4j 的图模型(Node/Relationship/Property)与索引
Neo4j 的图模型由 Node、Relationship、Property 组成,其索引有哪些类型?与关系型数据库的差异是什么?
- 属性图模型(Node/Relationship/Property)的基本概念
- Neo4j 的索引类型(原生索引/全文索引/唯一约束)
- 与关系型数据库的建模差异
Neo4j 采用属性图(Property Graph)模型:Node(节点)表示实体,Relationship(关系)表示实体间的关联(带方向与类型),Property(属性)是节点和关系上的键值数据。与关系型数据库用外键表连接不同,图数据库把"关系"作为一等公民存储为物理指针,多跳关联查询无需昂贵的 JOIN。Neo4j 的索引包括:原生索引(对节点/关系属性建立,用于快速定位,按 label+property 生效)、全文索引(支持全文搜索,基于 Lucene)、唯一约束(保证属性唯一,隐式创建唯一索引)。索引在 Cypher 查询中用于加速 WHERE 与 MATCH 的节点定位。建模上,图数据库强调"关系即查询路径",关系型则强调"数据规范化"。
图模型的核心是"关系成为一等公民",这让多跳关联查询在语义与性能上都优于关系型。索引用于加速节点定位,但图查询的性能主要靠"指针跳转"而非索引。理解图模型与索引,是设计高效图存储的基础。