存储过程

本页面提供了 Neo4j 内置程序的完整参考。

有关 2025-2026 系列中已变更、已弃用或已移除程序的列表,请参阅 Neo4j 2025-2026 系列中的变更当前弃用项 以及 Neo4j 2025.01 中的破坏性变更

服务器上可用的程序取决于多个因素

  • Neo4j 企业版提供的程序集比 Neo4j 社区版更丰富。

  • Neo4j 的 APOC Core 库GenAI 插件Aura 实例上默认安装,但在本地服务器上则需要单独安装。

  • 集群成员拥有独立模式下不可用的程序。

要查看您的 Neo4j DBMS 中有哪些程序可用,请使用 Cypher 命令 SHOW PROCEDURES

列出可用程序及其默认输出列
SHOW PROCEDURES
列出可用程序及其完整输出列
SHOW PROCEDURES YIELD *

某些程序只能由拥有 Admin 权限的用户运行。具体来说,需要拥有 EXECUTE ADMIN PROCEDURES 权限,或者同时拥有 EXECUTE PROCEDURESEXECUTE BOOSTED PROCEDURES 权限。这些程序被标记为 仅限管理员

有关更多信息,请参阅 EXECUTE 权限

身份验证与授权

有关更多信息,请参阅 身份验证与授权

dbms.security.clearAuthCache()

详细信息

语法

dbms.security.clearAuthCache()

描述

清除身份验证和授权缓存。

模式

DBMS

dbms.security.reloadTLS()

详细信息

语法

dbms.security.reloadTLS()

描述

触发所有 TLS 证书和配置的动态重新加载。

模式

DBMS

dbms.showCurrentUser()

详细信息

语法

dbms.showCurrentUser() :: (username, roles, flags)

描述

显示当前用户。

返回参数

名称

类型

描述

username

STRING

当前用户的名称。

角色

LIST<STRING>

分配给当前用户的角色。

标志 (flags)

LIST<STRING>

设置在当前用户上的标志。

模式

DBMS

后台作业管理

有关更多信息,请参阅 管理后台作业

dbms.scheduler.failedJobs()

详细信息

语法

dbms.scheduler.failedJobs() :: (jobId, group, database, submitter, description, type, submitted, executionStart, failureTime, failureDescription)

描述

列出失败的作业运行。历史数据量存在限制。

返回参数

名称

类型

描述

jobId

STRING

失败作业的 ID。

组 (group)

STRING

失败作业的类别。

database

STRING

作业失败所在的数据库名称。

提交者 (submitter)

STRING

失败作业的创建者。

description(描述)

STRING

有关失败作业的信息。

type

STRING

失败作业的间隔。

提交时间 (submitted)

STRING

失败作业的提交时间。

执行开始时间 (executionStart)

STRING

失败作业的开始时间。

失败时间 (failureTime)

STRING

失败作业的失败时间。

失败描述 (failureDescription)

STRING

有关作业失败的信息。

模式

DBMS

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

dbms.scheduler.groups()

详细信息

语法

dbms.scheduler.groups() :: (group, threads)

描述

列出数据库内部作业调度程序中处于活动状态的作业组。

返回参数

名称

类型

描述

组 (group)

STRING

作业组名称。

线程 (threads)

INTEGER(整数)

该作业组中活动的线程数。

模式

DBMS

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

dbms.scheduler.jobs()

详细信息

语法

dbms.scheduler.jobs() :: (jobId, group, submitted, database, submitter, description, type, scheduledAt, period, state, currentStateDescription)

描述

列出数据库内部作业调度程序中处于活动状态的所有作业。

返回参数

名称

类型

描述

jobId

STRING

作业的 ID。

组 (group)

STRING

作业的类别。

提交时间 (submitted)

STRING

作业的提交时间。

database

STRING

作业所在的数据库名称。

提交者 (submitter)

STRING

作业的创建者。

description(描述)

STRING

关于作业的信息。

type

STRING

作业的间隔。

预定时间 (scheduledAt)

STRING

作业的开始时间。

周期 (period)

STRING

定期运行作业的间隔。

state

STRING

作业的状态:('EXECUTING', 'SCHEDULED')。

当前状态描述 (currentStateDescription)

STRING

作业状态的描述。

模式

DBMS

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

变更数据捕获 (CDC)

有关更多信息,请参阅 CDC 文档

cdc.current()

详细信息

语法

cdc.current() :: (id)

描述

返回可用于流式传输变更的当前变更标识符。

返回参数

名称

类型

描述

id

STRING

变更标识符。

模式

读取 (READ)

替换为

db.cdc.current()

cdc.earliest()

详细信息

语法

cdc.earliest() :: (id)

描述

返回可用于流式传输变更的最早变更标识符。

返回参数

名称

类型

描述

id

STRING

变更标识符。

模式

读取 (READ)

替换为

db.cdc.earliest()

cdc.query()

详细信息

语法

cdc.query([ from selectors ]) :: (id, txId, seq, metadata, event)

描述

查询从提供的变更标识符开始发生的变更。

输入参数

名称

类型

描述

从 (from)

STRING

用于查询变更的起始变更标识符。

选择器 (selectors)

LIST<MAP>

可选的选择器列表,用于过滤变更。

返回参数

名称

类型

描述

id

STRING

此变更事件的变更标识符。用于继续从该变更事件进行查询。

事务 ID (txId)

INTEGER(整数)

标识变更发生所在事务的数字,与 seq 结合使用是唯一的。

序列号 (seq)

INTEGER(整数)

用于对同一事务中发生的变更进行排序的数字。

元数据 (metadata)

MAP

导致此变更事件的事务元数据。

event

MAP

在受影响实体上检索到的变更。

模式

读取 (READ)

替换为

db.cdc.query()

db.cdc.current()

详细信息

语法

db.cdc.current() :: (id)

描述

返回可用于流式传输变更的当前变更标识符。

返回参数

名称

类型

描述

id

STRING

变更标识符。

模式

读取 (READ)

db.cdc.earliest()

详细信息

语法

db.cdc.earliest() :: (id)

描述

返回可用于流式传输变更的最早变更标识符。

返回参数

名称

类型

描述

id

STRING

变更标识符。

模式

读取 (READ)

db.cdc.query()

详细信息

语法

db.cdc.query([ from selectors ]) :: (id, txId, seq, metadata, event)

描述

查询从提供的变更标识符开始发生的变更。

输入参数

名称

类型

描述

从 (from)

STRING

用于查询变更的起始变更标识符。

选择器 (selectors)

LIST<MAP>

可选的选择器列表,用于过滤变更。

返回参数

名称

类型

描述

id

STRING

此变更事件的变更标识符。用于继续从该变更事件进行查询。

事务 ID (txId)

INTEGER(整数)

标识变更发生所在事务的数字,与 seq 结合使用是唯一的。

序列号 (seq)

INTEGER(整数)

用于对同一事务中发生的变更进行排序的数字。

元数据 (metadata)

MAP

导致此变更事件的事务元数据。

event

MAP

在受影响实体上检索到的变更。

模式

读取 (READ)

db.cdc.translateId()

详细信息

语法

db.cdc.translateId(from :: STRING) :: (id :: STRING)

描述

转换任何提供的变更标识符以匹配查询的数据库。

输入参数

名称

类型

描述

从 (from)

STRING

要转换的变更标识符。

返回参数

名称

类型

描述

id

STRING

变更标识符。

模式

读取 (READ)

集群管理

有关更多信息,请参阅 集群

dbms.cluster.checkConnectivity()

详细信息

语法

dbms.cluster.checkConnectivity([ port-name server ]) :: (serverId, name, address, mode-constraint, port-name, port-address, result)

描述

检查此实例与其他集群成员的连接性。并非所有端口都与所有成员相关。'port-name' 的有效值为:[CLUSTER, INTRA_BOLT, RAFT]

输入参数

名称

类型

描述

端口名称 (port-name)

STRING

端口名称:('CLUSTER', 'RAFT')。

服务器 (server)

STRING

要检查连接性的服务器 ID。

返回参数

名称

类型

描述

serverId

STRING

被检查服务器的 ID。

名称 (name)

STRING

name :: STRING

address

STRING

地址 :: STRING

模式约束 (mode-constraint)

STRING

服务器的实例模式约束。

端口名称 (port-name)

STRING

被检查端口的名称。

端口地址 (port-address)

STRING

被检查端口的地址。

结果

STRING

检查是否成功。

模式

DBMS

dbms.cluster.cordonServer()

详细信息

语法

dbms.cluster.cordonServer(server)

描述

将拓扑中的服务器标记为不适合进行新的分配。它不会强制将当前的分配从服务器上移除。这在拥有多个不可用服务器时进行数据库取消分配非常有用。

输入参数

名称

类型

描述

服务器 (server)

STRING

要隔离 (cordon) 的服务器名称或 ID。

模式

写入 (WRITE)

所需权限

服务器管理 (SERVER MANAGEMENT)

使用管理员权限运行此程序已弃用。

dbms.cluster.deallocateDatabaseFromServer()

详细信息

语法

dbms.cluster.deallocateDatabaseFromServer(server, database [, dryrun ]) :: (database, fromServerName, fromServerId, toServerName, toServerId, mode)

描述

从特定服务器取消分配特定的用户数据库。

输入参数

名称

类型

描述

服务器 (server)

STRING

要从中取消分配的服务器 ID。

database

STRING

要取消分配的数据库名称。

试运行 (dryrun)

布尔值 (BOOLEAN)

设置为 true 以进行试运行。

返回参数

名称

类型

描述

database

STRING

数据库名称。

来源服务器名称 (fromServerName)

STRING

服务器名称。

来源服务器 ID (fromServerId)

STRING

服务器 ID。

目标服务器名称 (toServerName)

STRING

服务器名称。

目标服务器 ID (toServerId)

STRING

服务器 ID。

mode

STRING

数据库托管的模式。

模式

写入 (WRITE)

所需权限

服务器管理 (SERVER MANAGEMENT)

dbms.cluster.deallocateDatabaseFromServers()

详细信息

语法

dbms.cluster.deallocateDatabaseFromServers(servers, database [, dryrun ]) :: (database, fromServerName, fromServerId, toServerName, toServerId, mode)

描述

从服务器列表取消分配特定的用户数据库。

输入参数

名称

类型

描述

服务器 (servers)

LIST<STRING>

要从中取消分配的服务器 ID。

database

STRING

要取消分配的数据库 ID。

试运行 (dryrun)

布尔值 (BOOLEAN)

设置为 true 以进行试运行。

返回参数

名称

类型

描述

database

STRING

数据库名称。

来源服务器名称 (fromServerName)

STRING

服务器名称。

来源服务器 ID (fromServerId)

STRING

服务器 ID。

目标服务器名称 (toServerName)

STRING

服务器名称。

目标服务器 ID (toServerId)

STRING

服务器 ID。

mode

STRING

数据库托管的模式。

模式

写入 (WRITE)

所需权限

服务器管理 (SERVER MANAGEMENT)

dbms.cluster.deallocateNumberOfDatabases()

详细信息

语法

dbms.cluster.deallocateNumberOfDatabases(server, number [, dryrun ]) :: (database, fromServerName, fromServerId, toServerName, toServerId, mode)

描述

从特定服务器取消分配一定数量的用户数据库。

输入参数

名称

类型

描述

服务器 (server)

STRING

要从中取消分配的服务器 ID。

数量 (number)

INTEGER(整数)

要取消分配的数据库数量。

试运行 (dryrun)

布尔值 (BOOLEAN)

设置为 true 以进行试运行。

返回参数

名称

类型

描述

database

STRING

数据库名称。

来源服务器名称 (fromServerName)

STRING

服务器名称。

来源服务器 ID (fromServerId)

STRING

服务器 ID。

目标服务器名称 (toServerName)

STRING

服务器名称。

目标服务器 ID (toServerId)

STRING

服务器 ID。

mode

STRING

数据库托管的模式。

模式

写入 (WRITE)

所需权限

服务器管理 (SERVER MANAGEMENT)

dbms.cluster.protocols()

详细信息

语法

dbms.cluster.protocols() :: (orientation, remoteAddress, applicationProtocol, applicationProtocolVersion, modifierProtocols)

描述

已安装协议概述

返回参数

名称

类型

描述

方向 (orientation)

STRING

协议方向(入站或出站)。

远程地址 (remoteAddress)

STRING

此协议可用的套接字地址。

应用协议 (applicationProtocol)

STRING

协议名称。

应用协议版本 (applicationProtocolVersion)

INTEGER(整数)

协议版本。

修饰协议 (modifierProtocols)

STRING

已安装的修饰协议,例如压缩。

模式

DBMS

dbms.cluster.readReplicaToggle()

详细信息

语法

dbms.cluster.readReplicaToggle(databaseName, pause) :: (state)

描述

此切换可以暂停或恢复只读副本(已弃用,建议使用 dbms.cluster.secondaryReplicationDisable)

输入参数

名称

类型

描述

数据库名称 (databaseName)

STRING

要切换辅助复制进程的数据库名称。

暂停 (pause)

布尔值 (BOOLEAN)

是否启用/禁用辅助复制进程。

返回参数

名称

类型

描述

state

STRING

辅助复制进程的当前状态。

模式

DBMS

它的用途是什么?

您可以执行时间点备份,因为备份将仅包含暂停事务拉取点之前的事务。请按照以下步骤执行:

  1. 直接连接到以辅助模式托管数据库的服务器。(Neo4j 驱动程序使用 bolt:// 或使用 HTTP API)。

  2. 为指定数据库暂停事务拉取。

  3. 备份数据库,请参阅 备份在线数据库

如果直接连接到以辅助模式托管数据库的服务器,数据科学家可以在已暂停的特定数据库上执行分析,在分析过程中数据不会意外更改。

此程序只能在连接服务器上以辅助角色运行的数据库上执行。

暂停 neo4j 数据库的事务拉取
CALL dbms.cluster.readReplicaToggle("neo4j", true)
恢复 neo4j 数据库的事务拉取
CALL dbms.cluster.readReplicaToggle("neo4j", false)

dbms.cluster.reallocateDatabase()

详细信息

语法

dbms.cluster.reallocateDatabase(database [, dryrun ]) :: (database, fromServerName, fromServerId, toServerName, toServerId, mode)

描述

重新分配特定数据库。

输入参数

名称

类型

描述

database

STRING

要重新分配的数据库名称。

试运行 (dryrun)

布尔值 (BOOLEAN)

设置为 true 以进行试运行。

返回参数

名称

类型

描述

database

STRING

数据库名称。

来源服务器名称 (fromServerName)

STRING

服务器名称。

来源服务器 ID (fromServerId)

STRING

服务器 ID。

目标服务器名称 (toServerName)

STRING

服务器名称。

目标服务器 ID (toServerId)

STRING

服务器 ID。

mode

STRING

数据库托管的模式。

模式

写入 (WRITE)

所需权限

服务器管理 (SERVER MANAGEMENT)

dbms.cluster.reallocateNumberOfDatabases()

详细信息

语法

dbms.cluster.reallocateNumberOfDatabases(number [, dryrun ]) :: (database, fromServerName, fromServerId, toServerName, toServerId, mode)

描述

重新分配指定数量的用户数据库。

输入参数

名称

类型

描述

数量 (number)

INTEGER(整数)

要重新分配的数据库数量。

试运行 (dryrun)

布尔值 (BOOLEAN)

设置为 true 以进行试运行。

返回参数

名称

类型

描述

database

STRING

数据库名称。

来源服务器名称 (fromServerName)

STRING

服务器名称。

来源服务器 ID (fromServerId)

STRING

服务器 ID。

目标服务器名称 (toServerName)

STRING

服务器名称。

目标服务器 ID (toServerId)

STRING

服务器 ID。

mode

STRING

数据库托管的模式。

模式

写入 (WRITE)

所需权限

服务器管理 (SERVER MANAGEMENT)

dbms.cluster.recreateDatabase()

详细信息

语法

dbms.cluster.recreateDatabase(database :: STRING, options = {} :: MAP)

描述

重新创建数据库同时保留所有 RBAC 设置。该程序启动一个流程,完成后,集群内的所有数据库实例将完成同步并启动。

输入参数

名称

类型

描述

database

STRING

要重新创建的数据库名称。

选项 (options)

MAP

用于重新创建数据库的种子设定和拓扑选项。

模式

写入 (WRITE)

options 字段中必须指定 seedURIseedingServers 作为种子设定选项。

如果没有定义拓扑选项,数据库将使用先前的拓扑重新创建。

有关如何使用 dbms.recreateDatabase() 程序的更多详细信息,请参阅 数据库管理 → 重新创建数据库 章节。

dbms.cluster.routing.getRoutingTable()

详细信息

语法

dbms.cluster.routing.getRoutingTable(context [, database ]) :: (ttl, servers)

描述

返回给定数据库的已通告支持 Bolt 的端点,按每个端点的功能进行划分。例如,端点可以服务读查询、写查询和/或未来的 getRoutingTable 请求。

输入参数

名称

类型

描述

上下文 (context)

MAP

路由上下文,例如路由策略。

database

STRING

获取路由表的数据库。

返回参数

名称

类型

描述

TTL (存活时间)

INTEGER(整数)

路由表的存活时间(秒)。

服务器 (servers)

LIST<MAP>

按是否为读取者、写入者或路由者进行分组的服务器。

模式

DBMS

dbms.cluster.secondaryReplicationDisable()

详细信息

语法

dbms.cluster.secondaryReplicationDisable(databaseName, pause) :: (state)

描述

此切换可以暂停或恢复辅助复制进程。

输入参数

名称

类型

描述

数据库名称 (databaseName)

STRING

要切换辅助复制进程的数据库名称。

暂停 (pause)

布尔值 (BOOLEAN)

是否启用/禁用辅助复制进程。

返回参数

名称

类型

描述

state

STRING

辅助复制进程的当前状态。

模式

DBMS

它的用途是什么?

您可以执行时间点备份,因为备份将仅包含暂停事务拉取点之前的事务。请按照以下步骤执行:

  1. 直接连接到以辅助模式托管数据库的服务器。(Neo4j 驱动程序使用 bolt:// 或使用 HTTP API)。

  2. 为指定数据库暂停事务拉取。

  3. 备份数据库,请参阅 备份在线数据库

如果直接连接到以辅助模式托管数据库的服务器,数据科学家可以在已暂停的特定数据库上执行分析,在分析过程中数据不会意外更改。

此程序只能在连接服务器上以辅助角色运行的数据库上执行。

暂停 neo4j 数据库的事务拉取
CALL dbms.cluster.secondaryReplicationDisable("neo4j", true)
恢复 neo4j 数据库的事务拉取
CALL dbms.cluster.secondaryReplicationDisable("neo4j", false)

dbms.cluster.setAutomaticallyEnableFreeServers()

详细信息

语法

dbms.cluster.setAutomaticallyEnableFreeServers(autoEnable)

描述

使用此方法,您可以设置是否自动启用空闲服务器。

输入参数

名称

类型

描述

自动启用 (autoEnable)

布尔值 (BOOLEAN)

是否自动启用空闲服务器。

模式

写入 (WRITE)

所需权限

服务器管理 (SERVER MANAGEMENT)

使用管理员权限运行此程序已弃用。

dbms.cluster.statusCheck()

详细信息

语法

dbms.cluster.statusCheck(databases, timeoutMilliseconds) :: (database, serverId, serverName, address, replicationSuccessful, memberStatus, recognisedLeader, recognisedLeaderTerm, requester, error)

描述

执行 Raft 状态检查。

输入参数

名称

类型

描述

数据库 (databases)

LIST<STRING>

应运行状态检查的数据库。提供空列表会对该服务器上的所有集群数据库运行状态检查,即它不会在单机或辅助节点上运行。

超时毫秒数 (timeoutMilliseconds)

INTEGER(整数)

指定在将复制标记为不成功之前等待复制的最大时间。默认值为 1000 毫秒。

返回参数

名称

类型

描述

database

STRING

复制了状态检查条目的数据库。

serverId

STRING

服务器的 UUID,它是否参与了状态检查条目的成功复制。

服务器名称 (serverName)

STRING

服务器的友好名称,如果未设置名称,则为其 UUID。

address

STRING

服务器 Bolt 端口的地址。

复制成功 (replicationSuccessful)

布尔值 (BOOLEAN)

指示服务器(运行该程序的服务器)是否可以复制事务。

成员状态 (memberStatus)

STRING

每个主要成员的状态。

认可的领导者 (recognisedLeader)

STRING

每个主要成员感知的领导者的服务器 ID。

认可的领导者任期 (recognisedLeaderTerm)

INTEGER(整数)

每个主要成员感知的领导者的任期。如果成员报告不同的领导者,则应信任任期最高的那个。

请求者 (requester)

布尔值 (BOOLEAN)

服务器是否为请求者。

错误 (error)

STRING

包含错误消息(如果存在)。错误的一个示例是,请求的一个或多个数据库在请求者上不存在。

模式

DBMS

dbms.cluster.uncordonServer()

详细信息

语法

dbms.cluster.uncordonServer(server)

描述

移除对服务器的隔离,将其恢复为“已启用”。

输入参数

名称

类型

描述

服务器 (server)

STRING

要取消隔离的服务器名称或 ID。

模式

写入 (WRITE)

替换为

启用服务器 (ENABLE SERVER)

所需权限

服务器管理 (SERVER MANAGEMENT)

使用管理员权限运行此程序已弃用。

dbms.recreateDatabase()

详细信息

语法

dbms.recreateDatabase(database :: STRING, options = {} :: MAP)

描述

重新创建数据库同时保留所有 RBAC 设置。该程序启动一个流程,完成后,集群内的所有数据库实例将完成同步并启动。

输入参数

名称

类型

描述

database

STRING

要重新创建的数据库名称。

选项 (options)

MAP

用于重新创建数据库的种子设定和拓扑选项。

模式

写入 (WRITE)

options 字段中必须指定 seedURIseedingServersclearData,以定义重新创建应基于什么存储。有关如何使用 dbms.recreateDatabase() 程序的更多详细信息,请参阅相关章节 数据库管理 → 重新创建数据库。如果没有定义拓扑选项,数据库将使用先前的拓扑重新创建。

dbms.setDefaultAllocationNumbers()

详细信息

语法

dbms.setDefaultAllocationNumbers(primaries, secondaries, propertyShardReplicas)

描述

使用此方法,您可以设置默认的主要副本、辅助副本和属性分片副本数量。 [1]

输入参数

名称

类型

描述

主要副本 (primaries)

INTEGER(整数)

默认的主要副本数量。

辅助副本 (secondaries)

INTEGER(整数)

默认的辅助副本数量。

propertyShardReplicas 2025.12 引入 Cypher 25

INTEGER(整数)

默认的属性分片副本数量。

模式

写入 (WRITE)

1. 此说明已于 2025.12 更新,并包含了属性分片副本。

dbms.showTopologyGraphConfig()

详细信息

语法

dbms.showTopologyGraphConfig() :: (allocator, defaultPrimariesCount, defaultSecondariesCount, defaultDatabase, autoEnableFreeServers, propertyShardReplicas)

描述

使用此方法,可以显示拓扑图的配置。

返回参数

名称

类型

描述

分配器 (allocator)

STRING

分配器的名称。

默认主要副本计数 (defaultPrimariesCount)

INTEGER(整数)

默认的主要副本数量。

默认辅助副本计数 (defaultSecondariesCount)

INTEGER(整数)

默认的辅助副本数量。

默认数据库 (defaultDatabase)

STRING

默认数据库的名称。

自动启用空闲服务器 (autoEnableFreeServers)

布尔值 (BOOLEAN)

是否自动启用空闲服务器。

propertyShardReplicas 2025.12 引入 Cypher 25

INTEGER(整数)

默认的属性分片副本数量。

模式

读取 (READ)

从 Neo4j 2025.04 开始,默认数据库也可以设置为本地或远程数据库别名。

配置与 DBMS 信息

有关更多信息,请参阅 配置

dbms.checkConfigValue()

详细信息

语法

dbms.checkConfigValue(setting, value) :: (valid, message)

描述

检查潜在的配置设置值是否有效。

输入参数

名称

类型

描述

设置 (setting)

STRING

设置名称。

STRING

要验证的设置值。

返回参数

名称

类型

描述

有效 (valid)

布尔值 (BOOLEAN)

设置值是否有效。

message

STRING

关于程序结果的详细信息。

模式

DBMS

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

dbms.components()

详细信息

语法

dbms.components() :: (name, versions, edition)

描述

列出 DBMS 组件及其版本。

返回参数

名称

类型

描述

名称 (name)

STRING

组件名称。

版本 (versions)

LIST<STRING>

组件的已安装版本。

版本 (edition)

STRING

DBMS 的 Neo4j 版本。

模式

DBMS

从 Neo4j 2025.05 开始,dbms.components()name 列值为 "Cypher" 的行中返回支持的 Cypher 版本。从 Neo4j 2025.06 开始,该行值为 ["5", "25"],表明从该版本开始同时支持 Cypher 5 和 Cypher 25。有关 Cypher 版本的更多信息,请参阅 Cypher 手册 → 选择 Cypher 版本

dbms.info()

详细信息

语法

dbms.info() :: (id, name, creationDate)

描述

提供有关 DBMS 的信息。

返回参数

名称

类型

描述

id

STRING

DBMS 的 ID。

名称 (name)

STRING

DBMS 的名称。

创建日期 (creationDate)

STRING

DBMS 的创建日期。

模式

DBMS

dbms.listCapabilities()

详细信息

语法

dbms.listCapabilities() :: (name, description, value)

描述

列出功能。

返回参数

名称

类型

描述

名称 (name)

STRING

功能的完整名称(例如 "dbms.instance.version")。

description(描述)

STRING

功能描述(例如 "此实例正在运行的 Neo4j 版本")。

ANY

功能对象(如果存在于系统中,例如 "5.20.0")。

模式

DBMS

dbms.listConfig()

详细信息

语法

dbms.listConfig([ searchString ]) :: (name, description, value, dynamic, defaultValue, startupValue, explicitlySet, validValues)

描述

列出 Neo4j 当前处于活动状态的配置设置。

输入参数

名称

类型

描述

搜索字符串 (searchString)

STRING

过滤配置设置名称的字符串。

返回参数

名称

类型

描述

名称 (name)

STRING

设置名称。

description(描述)

STRING

设置描述。

STRING

设置的设定值。

动态 (dynamic)

布尔值 (BOOLEAN)

设置是否可以动态设置。

默认值 (defaultValue)

STRING

设置的默认值。

启动值 (startupValue)

STRING

数据库启动时的设置值。

显式设置 (explicitlySet)

布尔值 (BOOLEAN)

是否显式设置了该设置。

有效值 (validValues)

STRING

有效值的描述。

模式

DBMS

dbms.setConfigValue()

详细信息

语法

dbms.setConfigValue(setting, value)

描述

更新给定的设置值。传递空值会导致移除已配置的值并恢复为默认值。更改不会持久保存,如果服务器重启,更改将丢失。在集群环境中,dbms.setConfigValue 仅影响运行该程序的集群成员。

输入参数

名称

类型

描述

设置 (setting)

STRING

设置名称。

STRING

要设置的值。

模式

DBMS

dbms.listPools()

详细信息

语法

dbms.listPools() :: (pool, databaseName, heapMemoryUsed, heapMemoryUsedBytes, nativeMemoryUsed, nativeMemoryUsedBytes, freeMemory, freeMemoryBytes, totalPoolMemory, totalPoolMemoryBytes)

描述

列出此实例上当前注册并对用户可见的所有内存池(包括子池)。

返回参数

名称

类型

描述

池 (pool)

STRING

内存池名称。

数据库名称 (databaseName)

STRING

数据库名称。

堆内存使用量 (heapMemoryUsed)

STRING

使用的堆内存量。

堆内存使用量(字节)(heapMemoryUsedBytes)

STRING

以字节为单位的已用堆内存量。

本地内存使用量 (nativeMemoryUsed)

STRING

使用的本地内存量。

本地内存使用量(字节)(nativeMemoryUsedBytes)

STRING

以字节为单位的已用本地内存量。

空闲内存 (freeMemory)

STRING

空闲内存量。

空闲内存(字节)(freeMemoryBytes)

STRING

以字节为单位的空闲内存量。

总池内存 (totalPoolMemory)

STRING

总池内存。

总池内存(字节)(totalPoolMemoryBytes)

STRING

以字节为单位的总池内存。

模式

DBMS

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

连接管理

有关更多信息,请参阅 管理连接

dbms.listConnections()

详细信息

语法

dbms.listConnections() :: (connectionId, connectTime, connector, username, userAgent, serverAddress, clientAddress)

描述

列出此实例上当前已接受且对用户可见的所有网络连接。

返回参数

名称

类型

描述

连接 ID (connectionId)

STRING

连接的 ID。

连接时间 (connectTime)

STRING

连接建立的时间,格式符合 ISO-8601 标准。

连接器 (connector)

STRING

连接器的协议。

username

STRING

已连接用户的用户名。

用户代理 (userAgent)

STRING

活动的代理。

服务器地址 (serverAddress)

STRING

已连接服务器的地址。

客户端地址 (clientAddress)

STRING

已连接客户端的地址。

模式

DBMS

dbms.killConnection()

详细信息

语法

dbms.killConnection(id) :: (connectionId, username, message)

描述

终止具有给定连接 ID 的网络连接。

输入参数

名称

类型

描述

id

STRING

要终止的连接 ID。

返回参数

名称

类型

描述

连接 ID (connectionId)

STRING

被终止的连接 ID。

username

STRING

被终止连接的用户用户名。

message

STRING

关于程序结果的详细信息。

模式

DBMS

dbms.killConnections()

详细信息

语法

dbms.killConnections(ids) :: (connectionId, username, message)

描述

终止具有给定连接 ID 的所有网络连接。

输入参数

名称

类型

描述

ID (ids)

LIST<STRING>

要终止的连接 ID。

返回参数

名称

类型

描述

连接 ID (connectionId)

STRING

被终止的连接 ID。

username

STRING

被终止连接的用户用户名。

message

STRING

关于程序结果的详细信息。

模式

DBMS

数据库管理

有关更多信息,请参阅 数据库管理数据库内部和事务行为

db.checkpoint()

详细信息

语法

db.checkpoint() :: (success, message)

描述

发起并等待一个新的检查点,或等待任何正在进行的检查点完成。请注意,这会暂时禁用 db.checkpoint.iops.limit 设置,以便使检查点更快完成。由于 IO 负载增加,这可能会导致事务吞吐量略有下降。

返回参数

名称

类型

描述

成功 (success)

布尔值 (BOOLEAN)

检查点是否已成功完成。

message

STRING

关于程序结果的详细信息。

模式

DBMS

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

db.info()

详细信息

语法

db.info() :: (id, name, creationDate)

描述

提供有关数据库的信息。

返回参数

名称

类型

描述

id

STRING

数据库的 ID。

名称 (name)

STRING

数据库名称。

创建日期 (creationDate)

STRING

数据库的创建日期,格式符合 ISO-8601 标准。

模式

读取 (READ)

dbms.listActiveLocks()

详细信息

语法

dbms.listActiveLocks(queryId) :: (mode, resourceType, resourceId)

描述

列出授予执行给定查询 ID 查询的事务的活动锁请求。

输入参数

名称

类型

描述

查询 ID (queryId)

STRING

要检查活动锁的查询 ID。

返回参数

名称

类型

描述

mode

STRING

锁类型:('SHARED', 'EXCLUSIVE')。

资源类型 (resourceType)

STRING

锁定的资源。

资源 ID (resourceId)

INTEGER(整数)

被锁定资源的 ID。

模式

DBMS

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

db.listLocks()

详细信息

语法

db.listLocks() :: (mode, resourceType, resourceId, transactionId)

描述

列出此数据库上的所有锁。

返回参数

名称

类型

描述

mode

STRING

此锁使用的锁定模式,要么为 "SHARED",要么为 "EXCLUSIVE"。

资源类型 (resourceType)

STRING

此锁保护的资源类型(例如节点、关系、标签)。

资源 ID (resourceId)

INTEGER(整数)

此锁保护的资源 ID。

transactionId

STRING

拥有此锁的事务 ID。

模式

DBMS

db.ping()

详细信息

语法

db.ping() :: (success)

描述

此程序可供客户端工具使用,以测试它们是否正确连接到数据库。该程序在所有数据库中均可用,并始终返回 true。通过无法调用此程序可以检测到错误的连接。

返回参数

名称

类型

描述

成功 (success)

布尔值 (BOOLEAN)

到数据库的连接调用是否成功。

模式

读取 (READ)

dbms.routing.getRoutingTable()

详细信息

语法

dbms.routing.getRoutingTable(context [, database ]) :: (ttl, servers)

描述

返回给定数据库的已通告支持 Bolt 的端点,按每个端点的功能进行划分。例如,端点可以服务读查询、写查询和/或未来的 getRoutingTable 请求。

输入参数

名称

类型

描述

上下文 (context)

MAP

路由上下文,例如路由策略。

database

STRING

获取路由表的数据库。

返回参数

名称

类型

描述

TTL (存活时间)

INTEGER(整数)

路由表的存活时间(秒)。

服务器 (servers)

LIST<MAP>

按是否为读取者、写入者或路由者进行分组的服务器。

模式

DBMS

dbms.setDefaultDatabase()

详细信息

语法

dbms.setDefaultDatabase(databaseName) :: (result)

描述

将默认数据库更改为提供的值。旧的默认数据库必须已停止。

输入参数

名称

类型

描述

数据库名称 (databaseName)

STRING

数据库名称。

返回参数

名称

类型

描述

结果

STRING

有关默认数据库的信息。

模式

写入 (WRITE)

从 Neo4j 2025.04 开始,默认数据库也可以设置为本地或远程数据库别名,或设置为尚未存在的数据库。

dbms.quarantineDatabase()

详细信息

语法

dbms.quarantineDatabase(databaseName, setStatus [, reason ]) :: (databaseName, quarantined, result)

描述

将数据库置于隔离状态或将其从隔离状态移除。

输入参数

名称

类型

描述

数据库名称 (databaseName)

STRING

要设置隔离状态的数据库名称。

设置状态 (setStatus)

布尔值 (BOOLEAN)

是否隔离该数据库。

原因 (reason)

STRING

隔离数据库的原因。

返回参数

名称

类型

描述

数据库名称 (databaseName)

STRING

数据库名称。

已隔离 (quarantined)

布尔值 (BOOLEAN)

数据库是否处于隔离状态。

结果

STRING

关于程序结果的详细信息。

模式

DBMS

替换为

dbms.unquarantineDatabase()

建议使用 dbms.unquarantineDatabase() 而不是 dbms.quarantineDatabase(),因为它有改进和新特性(请参阅 operation 选项)。

dbms.unquarantineDatabase()

详细信息

语法

dbms.unquarantineDatabase(server, databaseName, operation) :: ()

描述

解除给定服务器上数据库的隔离。

输入参数

名称

类型

描述

服务器 (server)

STRING

将要解除数据库隔离的服务器标识符。

database

STRING

将要解除隔离的数据库名称。

操作 (operation)

STRING

解除隔离时应用的的可选操作。

模式

DBMS

可选操作的可能值包括:

  • keepStateKeepStore — 不做任何操作;保持存储和集群状态不变。

  • replaceStateKeepStore — 作为新成员加入,清除当前的集群状态,但保留存储。

  • replaceStateReplaceStore — 作为新成员加入,同时清除当前的集群状态和存储。

如果您选择清除当前的集群状态,定义的数据库分配将尝试作为新成员加入。只有当大多数现有成员允许新成员加入时,此加入过程才能成功。假设您的数据库拓扑有三个主要分配。如果只有一个分配处于 quarantined 模式,则选择 replaceStateKeepStorereplaceStateReplaceStore 是安全的。如果有两个分配处于 quarantined 模式(意味着数据库在两台服务器上处于 quarantined 状态),那么您不应同时对它们使用 replaceStateKeepStorereplaceStateReplaceStore,因为将没有多数票允许它们进入。

dbms.upgrade()

详细信息

语法

dbms.upgrade() :: (status, upgradeResult)

描述

如果系统数据库架构不是当前架构,则对其进行升级。

返回参数

名称

类型

描述

状态 (status)

STRING

系统数据库的升级状态。

升级结果 (upgradeResult)

STRING

关于升级结果的信息。

模式

写入 (WRITE)

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

dbms.upgradeStatus()

详细信息

语法

dbms.upgradeStatus() :: (status, description, resolution)

描述

报告系统数据库子图架构的当前状态。

返回参数

名称

类型

描述

状态 (status)

STRING

系统数据库的升级状态。

description(描述)

STRING

描述升级状态的信息。

解决方案 (resolution)

STRING

关于升级所需步骤的信息。

模式

读取 (READ)

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

车队管理器 (Fleet Manager)

有关更多信息,请参阅 车队管理

fleetManagement.debugLogging()

详细信息

语法

fleetManagement.debugLogging(debugLoggingEnabled, payloadLoggingEnabled) :: (result)

描述

为车队管理器启用调试或有效负载记录。

输入参数

名称

类型

描述

启用调试日志记录 (debugLoggingEnabled)

布尔值 (BOOLEAN)

在此服务器上为车队管理器启用调试日志记录。

启用有效负载日志记录 (payloadLoggingEnabled)

布尔值 (BOOLEAN)

在此服务器上为车队管理器启用有效负载日志记录。

返回参数

名称

类型

描述

结果

STRING

指示操作结果的消息。

模式

DBMS

fleetManagement.disable()

详细信息

语法

fleetManagement.disable() :: (result)

描述

禁用车队管理器

返回参数

名称

类型

描述

结果

STRING

指示操作结果的消息。

模式

DBMS

fleetManagement.inspectToken()

详细信息

语法

fleetManagement.inspectToken([ token ]) :: (projectId, tokenExpires, errorMessage)

描述

检查车队管理器访问令牌。

输入参数

名称

类型

描述

令牌 (token)

STRING

(可选)从 Neo4j Aura 获取的令牌。如果未提供,将使用当前注册的令牌。

返回参数

名称

类型

描述

项目 ID (projectId)

STRING

部署令牌所属的 Aura 项目的 ID。

令牌到期时间 (tokenExpires)

STRING

令牌过期时间

错误消息 (errorMessage)

STRING

令牌检查失败时的错误消息。

模式

DBMS

fleetManagement.registerToken()

详细信息

语法

fleetManagement.registerToken(token) :: (result)

描述

添加一个用于向车队管理器进行身份验证的令牌。

输入参数

名称

类型

描述

令牌 (token)

STRING

从 Neo4j Aura 获取的令牌。

返回参数

名称

类型

描述

结果

STRING

指示操作结果的消息。

模式

DBMS

fleetManagement.reportedData()

详细信息

语法

fleetManagement.reportedData() :: (messageType, fieldPath, description, fieldType, values)

描述

为车队管理器消息中使用的数据结构生成文档。

返回参数

名称

类型

描述

消息类型 (messageType)

STRING

当前字段出现的消息名称。

字段路径 (fieldPath)

STRING

字段路径。

description(描述)

STRING

字段描述。

字段类型 (fieldType)

STRING

此字段的数据类型。

值 (values)

LIST<STRING>

在连接时动态确定的当前字段值。

模式

读取 (READ)

fleetManagement.restart()

详细信息

语法

fleetManagement.restart() :: (result)

描述

重启车队管理器。

返回参数

名称

类型

描述

结果

STRING

指示操作结果的消息。

模式

DBMS

fleetManagement.status()

详细信息

语法

fleetManagement.status() :: (active, connected, statusMessage)

描述

检查车队管理器的状态。

返回参数

名称

类型

描述

活动 (active)

布尔值 (BOOLEAN)

车队管理器是否处于活动状态?

已连接 (connected)

布尔值 (BOOLEAN)

车队管理器是否已连接?

状态消息 (statusMessage)

STRING

如果车队管理器未连接,则显示错误消息。

模式

读取 (READ)

索引管理

有关更多信息,请参阅

db.awaitIndex()

详细信息

语法

db.awaitIndex(indexName [, timeOutSeconds ])

描述

等待索引联机(例如:CALL db.awaitIndex("MyIndex", 300))。

输入参数

名称

类型

描述

索引名称 (indexName)

STRING

要等待的索引名称。

超时秒数 (timeOutSeconds)

INTEGER(整数)

等待的最大时间(秒)。

模式

读取 (READ)

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

db.awaitIndexes()

详细信息

语法

db.awaitIndexes([ timeOutSeconds ])

描述

等待所有索引联机(例如:CALL db.awaitIndexes(300))。

输入参数

名称

类型

描述

超时秒数 (timeOutSeconds)

INTEGER(整数)

等待的最大时间(秒)。

模式

读取 (READ)

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

db.index.fulltext.awaitEventuallyConsistentIndexRefresh()

详细信息

语法

db.index.fulltext.awaitEventuallyConsistentIndexRefresh()

描述

等待最近提交的事务中的更新应用于任何最终一致的全文索引。

模式

读取 (READ)

db.index.fulltext.listAvailableAnalyzers()

详细信息

语法

db.index.fulltext.listAvailableAnalyzers() :: (analyzer, description, stopwords)

描述

列出可用于配置全文索引的可用分析器。

返回参数

名称

类型

描述

分析器 (analyzer)

STRING

分析器名称。

description(描述)

STRING

分析器描述。

停用词 (stopwords)

LIST<STRING>

分析器用于对字符串进行分词的停用词。

模式

读取 (READ)

db.index.fulltext.queryNodes()

详细信息

语法

db.index.fulltext.queryNodes(indexName, queryString [, options ]) :: (node, score)

描述

查询给定的全文索引。返回匹配的节点及其 Lucene 查询得分,按得分排序。options 映射的有效 键: 值 对包括:

  • 'skip' — 跳过前 N 个结果。

  • 'limit' — 限制返回的结果数量。

  • 'analyzer' — 使用指定的分析器作为此查询的搜索分析器。

options 映射及其中的任何键都是可选的。options 映射示例:{skip: 30, limit: 10, analyzer: 'whitespace'}

输入参数

名称

类型

描述

索引名称 (indexName)

STRING

全文索引名称。

查询字符串 (queryString)

STRING

要查找近似匹配的字符串。

选项 (options)

MAP

{skip :: INTEGER, limit :: INTEGER, analyzer :: STRING}

返回参数

名称

类型

描述

节点

NODE

包含与查询字符串相似属性的节点。

score

FLOAT

衡量节点属性与查询字符串相似程度的得分。

模式

读取 (READ)

db.index.fulltext.queryRelationships()

详细信息

语法

db.index.fulltext.queryRelationships(indexName, queryString [, options ]) :: (relationship, score)

描述

查询给定的全文索引。返回匹配的关系及其 Lucene 查询得分,按得分排序。options 映射的有效 键: 值 对包括:

  • 'skip' — 跳过前 N 个结果。

  • 'limit' — 限制返回的结果数量。

  • 'analyzer' — 使用指定的分析器作为此查询的搜索分析器。

options 映射及其中的任何键都是可选的。options 映射示例:{skip: 30, limit: 10, analyzer: 'whitespace'}

输入参数

名称

类型

描述

索引名称 (indexName)

STRING

全文索引名称。

查询字符串 (queryString)

STRING

要查找近似匹配的字符串。

选项 (options)

MAP

{skip :: INTEGER, limit :: INTEGER, analyzer :: STRING}

返回参数

名称

类型

描述

关系 (relationship)

RELATIONSHIP

包含与查询字符串相似属性的关系。

score

FLOAT

衡量关系属性与查询字符串相似程度的得分。

模式

读取 (READ)

db.resampleIndex()

详细信息

语法

db.resampleIndex(indexName)

描述

计划索引的重采样(例如:CALL db.resampleIndex("MyIndex"))。

输入参数

名称

类型

描述

索引名称 (indexName)

STRING

索引名称。

模式

读取 (READ)

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

db.resampleOutdatedIndexes()

详细信息

语法

db.resampleOutdatedIndexes()

描述

计划对所有过时的索引进行重采样。

模式

读取 (READ)

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

指标 (Metrics)

dbms.queryJmx()

详细信息

语法

dbms.queryJmx(query) :: (name, description, attributes)

描述

按域和名称查询 JMX 管理数据。例如,使用 : 查找所有 JMX bean。

输入参数

名称

类型

描述

query

STRING

此 MBeanServer 上 MBean 的查询(例如 ':,name=neo4j' 表示 neo4j 数据库中的所有指标)。

返回参数

名称

类型

描述

名称 (name)

STRING

指标名称。

description(描述)

STRING

指标描述。

属性 (attributes)

MAP

包含该指标属性(值)的集合。

模式

DBMS

模式与元数据

db.schema.nodeTypeProperties()

详细信息

语法

db.schema.nodeTypeProperties() :: (nodeType, nodeLabels, propertyName, propertyTypes, mandatory)

描述

以表格形式显示节点的派生属性模式。

返回参数

名称

类型

描述

节点类型 (nodeType)

STRING

从节点标签生成的名称。

nodeLabels

LIST<STRING>

包含节点类别标签的列表。

属性名称 (propertyName)

STRING

节点类别上的属性键。

属性类型 (propertyTypes)

LIST<STRING>

属于节点类别的属性的所有类型。

强制性 (mandatory)

布尔值 (BOOLEAN)

属性是否存在于属于节点类别的所有节点上。

模式

读取 (READ)

在 Cypher 5 中,propertyTypes 列返回给定属性的潜在 Java 类型。在 Cypher 25 中,它返回潜在的 Cypher 类型。有关 Cypher 属性类型的更多信息,请参阅 Cypher 手册 → 属性类型

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

db.schema.relTypeProperties()

详细信息

语法

db.schema.relTypeProperties() :: (relType, propertyName, propertyTypes, mandatory)

描述

以表格形式显示关系的派生属性模式。

返回参数

名称

类型

描述

relType

STRING

从关系上的类型生成的名称。

属性名称 (propertyName)

STRING

关系类别上的属性键。

属性类型 (propertyTypes)

LIST<STRING>

属于关系类别的属性的所有类型。

强制性 (mandatory)

布尔值 (BOOLEAN)

属性是否存在于属于关系类别的所有关系上。

模式

读取 (READ)

在 Cypher 5 中,propertyTypes 列返回给定属性的潜在 Java 类型。在 Cypher 25 中,它返回潜在的 Cypher 类型。有关 Cypher 属性类型的更多信息,请参阅 Cypher 手册 → 属性类型

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

db.schema.visualization()

详细信息

语法

db.schema.visualization() :: (nodes, relationships)

描述

基于可用统计信息可视化数据模式。每个标签都会返回一个新节点。节点上表示的属性包括:name(标签名称)、indexes(索引列表)和 constraints(约束列表)。对于开始和结束节点的所有可能组合,都会返回给定类型的关系。关系上表示的属性包括:name(类型名称)。请注意,由于计数存储中提供的信息,这可能包含数据中不存在的其他关系。

返回参数

名称

类型

描述

节点

LIST<NODE>

表示数据库中每个标签的虚拟节点列表。

relationships

LIST<RELATIONSHIP>

表示数据库中开始和结束节点之间所有组合的虚拟关系列表。

模式

读取 (READ)

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

db.createLabel()

详细信息

语法

db.createLabel(newLabel)

描述

创建标签

输入参数

名称

类型

描述

新标签 (newLabel)

STRING

标签名称。

模式

写入 (WRITE)

db.createProperty()

详细信息

语法

db.createProperty(newProperty)

描述

创建属性

输入参数

名称

类型

描述

新属性 (newProperty)

STRING

属性名称。

模式

写入 (WRITE)

db.createRelationshipType

详细信息

语法

db.createRelationshipType(newRelationshipType)

描述

创建关系类型

输入参数

名称

类型

描述

新关系类型 (newRelationshipType)

STRING

关系类型名称。

模式

写入 (WRITE)

db.labels()

详细信息

语法

db.labels() :: (label)

描述

根据用户的访问权限,列出数据库中节点上附加的所有标签。如果用户无权查看这些标签,则该程序返回空结果。

返回参数

名称

类型

描述

标签 (label)

STRING

数据库中的标签。

模式

读取 (READ)

db.propertyKeys()

详细信息

语法

db.propertyKeys() :: (propertyKey)

描述

列出数据库中的所有属性键。

返回参数

名称

类型

描述

属性键 (propertyKey)

STRING

数据库中的属性键。

模式

读取 (READ)

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

db.relationshipTypes()

详细信息

语法

db.relationshipTypes() :: (relationshipType)

描述

根据用户的访问权限,列出数据库中关系上附加的所有类型。如果用户无权查看这些关系类型,则该程序返回空结果。

返回参数

名称

类型

描述

关系类型 (relationshipType)

STRING

数据库中的关系类型。

模式

读取 (READ)

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

统计信息与查询规划

有关更多信息,请参阅 统计信息与执行计划

db.clearQueryCaches()

详细信息

语法

db.clearQueryCaches() :: (value)

描述

清除所有查询缓存。

返回参数

名称

类型

描述

STRING

关于清除的查询缓存数量的信息。

模式

DBMS

db.prepareForReplanning()

详细信息

语法

db.prepareForReplanning([ timeOutSeconds ])

描述

触发索引重采样并等待其完成,之后清除查询缓存。此程序完成后,将使用最新的数据库统计信息来规划查询。

输入参数

名称

类型

描述

超时秒数 (timeOutSeconds)

INTEGER(整数)

等待的最大时间(秒)。

模式

读取 (READ)

此程序在多线程环境中运行并不安全。因此,它不受并行运行时支持。有关更多信息,请参阅 Cypher 手册 → 并行运行时

db.stats.clear

详细信息

语法

db.stats.clear(section) :: (section, success, message)

描述

清除给定数据部分的收集数据。有效部分为 'QUERIES'

输入参数

名称

类型

描述

部分 (section)

STRING

要清除的部分。唯一可用的部分是:'QUERIES'。

返回参数

名称

类型

描述

部分 (section)

STRING

已清除的部分。

成功 (success)

布尔值 (BOOLEAN)

该部分是否已成功清除。

message

STRING

关于程序结果的详细信息。

模式

读取 (READ)

db.stats.collect()

详细信息

语法

db.stats.collect(section [, config ]) :: (section, success, message)

描述

开始给定数据部分的数据收集。有效部分为 'QUERIES'

输入参数

名称

类型

描述

部分 (section)

STRING

要收集的部分。唯一可用的部分是:'QUERIES'。

config

MAP

{durationSeconds = -1 INTEGER}

返回参数

名称

类型

描述

部分 (section)

STRING

已收集的部分。

成功 (success)

布尔值 (BOOLEAN)

该部分是否已成功收集。

message

STRING

关于程序结果的详细信息。

模式

读取 (READ)

db.stats.retrieve()

详细信息

语法

db.stats.retrieve(section [, config ]) :: (section, data)

描述

检索有关当前数据库的统计数据。有效部分为 'GRAPH COUNTS', 'TOKENS', 'QUERIES', 'META'

输入参数

名称

类型

描述

部分 (section)

STRING

要检索的统计信息部分:('GRAPH COUNTS', 'TOKENS', 'QUERIES', 'META')。

config

MAP

{maxInvocations = 100 INTEGER}

返回参数

名称

类型

描述

部分 (section)

STRING

已检索的部分。

data

MAP

与检索到的统计信息有关的数据。

模式

读取 (READ)

db.stats.retrieveAllAnonymized()

详细信息

语法

db.stats.retrieveAllAnonymized(graphToken [, config ]) :: (section, data)

描述

以匿名形式检索有关当前数据库的所有可用统计数据。

输入参数

名称

类型

描述

图令牌 (graphToken)

STRING

图令牌的名称。

config

MAP

{maxInvocations = 100 INTEGER}

返回参数

名称

类型

描述

部分 (section)

STRING

已检索的部分。

data

MAP

与检索到的统计信息有关的数据。

模式

读取 (READ)

db.stats.status()

详细信息

语法

db.stats.status() :: (section, status, data)

描述

检索此数据库的所有可用收集器守护进程的状态。

返回参数

名称

类型

描述

部分 (section)

STRING

带有消息 "QUERIES" 的字符串。

状态 (status)

STRING

QueryCollector 的状态:"idle" 或 "collecting"。

data

MAP

数据 :: MAP

模式

读取 (READ)

db.stats.stop()

详细信息

语法

db.stats.stop(section) :: (section, success, message)

描述

停止给定数据部分的数据收集。有效部分为 'QUERIES'

输入参数

名称

类型

描述

部分 (section)

STRING

要停止的部分。唯一可用的部分是:'QUERIES'。

返回参数

名称

类型

描述

部分 (section)

STRING

已停止的部分。

成功 (success)

布尔值 (BOOLEAN)

该部分是否已成功停止。

message

STRING

关于程序结果的详细信息。

模式

读取 (READ)

事务管理

tx.getMetaData()

详细信息

语法

tx.getMetaData() :: (metadata)

描述

提供附加的事务元数据。

返回参数

名称

类型

描述

元数据 (metadata)

MAP

有关事务的元数据。

模式

DBMS

tx.setMetaData()

详细信息

语法

tx.setMetaData(data)

描述

将数据映射附加到事务。列出查询时将打印此数据,并将其插入查询日志中。

输入参数

名称

类型

描述

data

MAP

要附加到事务的元数据。

模式

DBMS

向量

有关更多信息,请参阅

db.create.setNodeVectorProperty

详细信息

语法

db.create.setNodeVectorProperty(node, key, vector)

描述

在给定节点上设置向量属性,其表示方式比 Cypher 的 SET 更节省空间。

输入参数

名称

类型

描述

节点

NODE

将在其上存储新属性的节点。

键 (key)

STRING

新属性的名称。

向量 (vector)

ANY

包含嵌入的对象。

模式

写入 (WRITE)

已知问题

来自 SHOW PROCEDURES 的程序签名会将向量参数呈现为 ANY 类型,而不是语义上正确的 LIST<INTEGER | FLOAT> 类型。这些类型仍被强制实施为 LIST<INTEGER | FLOAT>

db.create.setRelationshipVectorProperty()

详细信息

语法

db.create.setRelationshipVectorProperty(relationship, key, vector)

描述

在给定关系上设置向量属性,其表示方式比 Cypher 的 SET 更节省空间。

输入参数

名称

类型

描述

关系 (relationship)

RELATIONSHIP

将在其上存储新属性的关系。

键 (key)

STRING

新属性的名称。

向量 (vector)

ANY

包含嵌入的对象。

模式

写入 (WRITE)

已知问题

来自 SHOW PROCEDURES 的程序签名会将向量参数呈现为 ANY 类型,而不是语义上正确的 LIST<INTEGER | FLOAT> 类型。这些类型仍被强制实施为 LIST<INTEGER | FLOAT>

db.create.setVectorProperty()

详细信息

语法

db.create.setVectorProperty(node, key, vector) :: (node)

描述

在给定节点上设置向量属性,其表示方式比 Cypher 的 SET 更节省空间。

输入参数

名称

类型

描述

节点

NODE

将在其上存储新属性的节点。

键 (key)

STRING

新属性的名称。

向量 (vector)

ANY

包含嵌入的对象。

返回参数

名称

类型

描述

节点

NODE

已设置向量属性的节点。

模式

写入 (WRITE)

替换为

db.create.setNodeVectorProperty()db.create.setRelationshipVectorProperty()

已知问题

来自 SHOW PROCEDURES 的程序签名会将向量参数呈现为 ANY 类型,而不是语义上正确的 LIST<INTEGER | FLOAT> 类型。这些类型仍被强制实施为 LIST<INTEGER | FLOAT>

db.index.vector.createNodeIndex()

详细信息

语法

db.index.vector.createNodeIndex(indexName, label, propertyKey, vectorDimension, vectorSimilarityFunction)

描述

使用 EUCLIDEAN 或 COSINE 相似度函数,为指定的标签和属性以及给定的向量维度创建命名节点向量索引。两种相似度函数均不区分大小写。使用 db.index.vector.queryNodes 程序来查询命名索引。

输入参数

名称

类型

描述

索引名称 (indexName)

STRING

indexName :: STRING

标签 (label)

STRING

label :: STRING

属性键 (propertyKey)

STRING

propertyKey :: STRING

vectorDimension

INTEGER(整数)

vectorDimension :: INTEGER

vectorSimilarityFunction

STRING

vectorSimilarityFunction :: STRING

模式

模式 (SCHEMA)

替换为

Cypher 命令 CREATE VECTOR INDEX。有关更多信息,请参阅 Cypher 手册 → 创建向量索引

db.index.vector.queryNodes()

详细信息

语法

db.index.vector.queryNodes(indexName, numberOfNearestNeighbours, query) :: (node, score)

描述

查询给定的节点向量索引。返回请求数量的距离提供查询向量最近的邻居,以及它们相对于该查询向量的相似度得分(基于为索引配置的相似度函数)。相似度得分是一个介于 [0, 1] 之间的值;其中 0 表示最不相似,1 表示最相似。

输入参数

名称

类型

描述

索引名称 (indexName)

STRING

向量索引名称。

最近邻居数量 (numberOfNearestNeighbours)

INTEGER(整数)

向量邻域的大小。

query

ANY

要查找近似匹配的对象。

返回参数

名称

类型

描述

节点

NODE

包含与查询对象相似向量属性的节点。

score

FLOAT

衡量节点属性与查询对象相似程度的得分。

模式

读取 (READ)

从 Neo4j 2026.01 开始,查询向量索引的首选方式是使用功能更强大的 Cypher SEARCH 子句。有关更多信息,请参阅 Cypher 手册 → SEARCH

db.index.vector.queryRelationships()

详细信息

语法

db.index.vector.queryRelationships(indexName, numberOfNearestNeighbours, query) :: (relationship, score)

描述

查询给定的关系向量索引。返回请求数量的距离提供查询向量最近的邻居,以及它们相对于该查询向量的相似度得分(基于为索引配置的相似度函数)。相似度得分是一个介于 [0, 1] 之间的值;其中 0 表示最不相似,1 表示最相似。

输入参数

名称

类型

描述

索引名称 (indexName)

STRING

向量索引名称。

最近邻居数量 (numberOfNearestNeighbours)

INTEGER(整数)

向量邻域的大小。

query

ANY

要查找近似匹配的对象。

返回参数

名称

类型

描述

关系 (relationship)

RELATIONSHIP

包含与查询对象相似向量属性的关系。

score

FLOAT

衡量关系属性与查询对象相似程度的得分。

模式

读取 (READ)

从 Neo4j 2026.01 开始,查询向量索引的首选方式是使用功能更强大的 Cypher SEARCH 子句。有关更多信息,请参阅 Cypher 手册 → SEARCH