配置 Cypher 默认版本引入于 2025.06
您可以指定运行查询时所使用的 Cypher® 版本,在 Cypher 5 和 Cypher 25 之间进行选择。有关更多信息,请参阅 Cypher® 版本。
要指定 Cypher 版本,请使用以下选项之一:
- 为整个 DBMS 配置默认 Cypher 版本
-
整个 DBMS 的默认语言版本可以在 neo4j.conf 文件中通过设置 db.query.default_language 来配置。
在现有 DBMS 中更改此设置不会影响现有的数据库。除非在CREATE或ALTER数据库命令中显式指定了版本,否则它仅适用于新建的数据库。db.query.default_language的默认值为CYPHER_5。这意味着除非在 neo4j.conf 中显式设置db.query.default_language=CYPHER_25,否则新建的数据库默认将使用CYPHER_5。从 Neo4j 2026.02 版本开始,分发的 neo4j.conf 显式设置了
db.query.default_language=CYPHER_25。因此,对于使用所提供配置文件的部署,新建数据库默认将使用 Cypher 25。 - 为每个数据库配置默认 Cypher 版本
-
特定数据库的默认语言可以使用 Cypher 数据库管理命令,通过在创建数据库时或创建后修改数据库时使用
SET DEFAULT LANGUAGE子句来设置。该子句确定了指定数据库的默认 Cypher 版本,并覆盖配置文件中设置的版本。例如:CREATE DATABASE mydb SET DEFAULT LANGUAGE CYPHER 25或ALTER DATABASE mydb SET DEFAULT LANGUAGE CYPHER 5。有关更多详细信息和示例,请参阅 数据库管理命令语法 以及 数据库管理 部分中的相关页面。
如果未指定,数据库的默认语言将设置为 DBMS 的默认语言。在创建时设置默认语言仅需要正确的CREATE权限。修改现有标准数据库的默认语言需要SET DATABASE DEFAULT LANGUAGE权限,而修改现有复合数据库则需要ALTER COMPOSITE DATABASE权限。将默认语言设置为
CYPHER 25可确保在该数据库上运行的所有查询都将使用该数据库当前运行的Cypher 25版本(除非您在查询前加上CYPHER 5,这将覆盖此默认值)。例如,具有默认语言Cypher 25的 Neo4j 2025.08 数据库将使用 Neo4j 2025.08 中存在的Cypher 25,包括在 Neo4j 2025.06、2025.07 和 2025.08 中引入的所有更改。将默认语言设置为
CYPHER 5可确保在该数据库上运行的所有查询都将使用 Neo4j 2025.06 版本发布时所具备的Cypher 5版本(除非您在查询前加上CYPHER 25,这会覆盖此默认设置)。2025.06 版本之后引入的任何更改都不会影响查询的语义。 - 按单个查询设置 Cypher 版本
-
特定查询的默认语言可以通过在查询前加上
CYPHER 5或CYPHER 25关键字来设置。
例如:CYPHER 25 MATCH (n) RETURN n或CYPHER 5 MATCH (n) RETURN n。此设置决定了指定查询的语言,并覆盖配置文件和数据库中设置的默认语言。