简介

Neo4j 是全球领先的图数据库。其架构专为节点和关系的最优管理、存储和遍历而设计。该图数据库采用属性图(Property Graph)方法,这对遍历性能和操作运行时均有益处。Neo4j 提供专门的内存管理和内存高效型操作。

Neo4j 具有可扩展性,既可以作为独立服务器部署,也可以在生产环境中部署于多机容错集群中。针对生产应用的其他功能包括热备份和广泛的监控。

Neo4j 版本

自托管 Neo4j 有两个版本可供选择:社区版 (CE) 和企业版 (EE)。企业版包含社区版提供的所有功能,并增加了企业级需求,如备份、集群和故障转移能力。Infinigraph 是一种特殊的企业版,它还包括带有自动分片的无限水平扩展,以及通过许可证密钥启用的图数据科学 (Graph Data Science) 功能。

社区版 (CE)

社区版是 Neo4j 的全功能版本,适用于单实例部署。它全面支持 Neo4j 的关键功能,如符合 ACID 标准的事务、Cypher 和编程 API。它非常适合学习 Neo4j、DIY 项目以及小型工作组的应用。

企业版 (EE)

企业版在社区版的基础上扩展了功能,增加了性能和可扩展性的关键特性,例如集群架构和在线备份功能。其他安全功能包括基于角色的访问控制和 LDAP 支持(例如 Active Directory)。它是满足规模和可用性需求的生产系统(如商业解决方案和关键内部解决方案)的首选。

Infinigraph

Infinigraph 是 Neo4j 的一种专业企业版,专为大规模高性能图处理和分析而设计。它包含企业版的所有功能,以及带有自动分片的无限水平扩展和图分析能力。需要单独订阅。

下表比较了两个版本中提供的关键功能

表 1. 各版本关键功能
特性 CE EE EE (含 Infinigraph)

原生图

属性图模型

原生图处理与存储

标准对齐 存储格式 (340 亿节点与关系) 标准格式在 5.23 版本中已弃用

High_limit (1 千万亿节点与关系) 5.23 版本中已弃用

符合 ACID 标准的事务

Cypher 图查询语言

Slotted Cypher 运行时

Pipelined Cypher 运行时

Parallel Cypher 运行时

列出并终止正在运行的查询

高性能缓存

基于成本的查询优化器

客户端与 API

Cypher Shell

支持语法高亮的 Neo4j Browser

Bolt 协议

.NET, Go, Java, JavaScriptPython 的语言驱动程序 [1]

高性能原生 API

支持 Neo4j 图数据科学社区版 [1]

支持 Neo4j 图数据科学企业版 [2]

支持 Neo4j Bloom

通过 Neo4j GenAI 插件 实现生成式 AI 集成

索引和约束

通过原生标签索引快速写入

复合索引

全文节点与关系索引

向量索引

属性唯一性约束

属性存在性约束

属性类型约束

节点和关系键约束

安全

基于角色的访问控制

基于属性的访问控制

子图访问控制

LDAP 和 Active Directory 集成

Kerberos 安全选项

数据管理

离线全量导入

增量导入

空间自动重用

存储复制

离线备份 (dump)

规模与可用性

在线 备份恢复

多数据库 (system 和默认数据库之外)

自治集群

复合数据库

分片属性数据库 2025.12 新增

监控与管理

通过 Prometheus 进行监控的端点与指标

Neo4j 操作管理器

1. 需单独下载并安装。
2. Infinigraph 包含用于 Neo4j 图数据科学的许可证密钥。

默认情况下,Neo4j 社区版和企业版会报告少量使用数据。这有助于 Neo4j 了解产品的使用方式并进行改进。有关所收集数据的更多信息,请参阅 使用数据报告

Neo4j 服务器版本

2025.01.0 引入了新的日历版本编号 (CalVer) 以取代之前使用的语义版本编号 (SemVer)。新的版本格式为 YYYY.MM.Patch,基于发布的年份和月份,例如 2025.01.0、2025.02.0 等。补丁编号在同一个月内的每次发布都会增加。

部分版本将被指定为长期支持 (LTS) 版本。

Neo4j Aura 始终使用 Neo4j 服务器的最新版本。

Cypher® 版本

从 Neo4j 2025.06 起,Cypher 语言与 Neo4j 服务器解耦,并遵循其独立的版本控制。目前有两个版本的 Cypher 可用:Cypher 5 和 Cypher 25。您可以配置 DBMS 默认的 Cypher 版本,方法是在 neo4j.conf 文件中明确设置 db.query.default_language,也可以在通过 CREATE DATABASEALTER DATABASE 创建/修改数据库时针对特定数据库进行设置,或者在查询前加上 CYPHER 5CYPHER 25 以覆盖默认设置。更多信息,请参阅 配置 Cypher 默认版本Cypher 手册 → 选择 Cypher 版本

Cypher 5

Cypher 5 是所有为 Neo4j 2025.05 及更早版本编写的查询所兼容的语言版本。然而,从 Neo4j 2025.06 开始,它已冻结,在未来的服务器版本中仅会获得性能增强和漏洞修复。
将默认语言设置为 CYPHER 5 可确保在该数据库上运行的所有查询都使用 Neo4j 2025.06 版本发布时所存在的 Cypher 5 版本(除非您在查询前添加 CYPHER 25,这将覆盖该默认设置)。2025.06 版本之后引入的任何更改都不会影响该查询的语义。
除非在 DBMS 级别明确设置db.query.default_language=CYPHER_25,或者通过 CREATE DATABASE / ALTER DATABASE 覆盖,或者通过在查询前加 CYPHER 25,否则 Cypher 5 仍然是所有新建数据库的默认版本。

Cypher 25

Cypher 25 在 Cypher 5 的基础上构建,包含了新的和改进的功能,以及一些删除的内容。Neo4j 2025.06 或更高版本中引入的任何新的 Cypher 功能仅添加到 Cypher 25 中。将默认语言设置为 CYPHER 25 可确保在该数据库上运行的所有查询都使用该数据库当前运行的 Cypher 25 版本(除非您在查询前添加 CYPHER 5,这将覆盖该默认设置)。例如,默认语言为 Cypher 25 的 Neo4j 2025.10 数据库将使用 Neo4j 2025.10 中存在的 Cypher 25,包括在 2025.06、2025.07、2025.08 和 2025.09 中引入的任何更改。

从 Neo4j 2026.02 开始,分发的 neo4j.conf 明确设置db.query.default_language=CYPHER_25。因此,使用所提供配置文件的新部署,其新建数据库默认使用 Cypher 25。Cypher 版本仍然可以在 CREATE DATABASE 命令中明确指定,或随时使用 ALTER DATABASE 更改。

如果您希望将 Cypher 5 作为新数据库的默认版本,可以删除或注释掉该配置项,这等同于设置 db.query.default_language=CYPHER_5。现有数据库将保留其现有的默认语言。

操作手册版本控制

操作手册的版本与 Neo4j 服务器的日历版本保持一致。例如,Neo4j 2025.01.0 的操作手册版本为 2025.01.0,反映了该版本中的功能和变更。