函数

本节汇总了 Cypher® 中的所有函数。

要列出所有函数,请运行以下查询:

列出所有函数
SHOW FUNCTIONS

有关此命令的更多信息,请参阅 SHOW FUNCTIONS

所有以 STRING 为输入的函数都针对 Unicode 字符而非标准 char[] 进行操作。例如,对任何 Unicode 字符应用 size() 函数都将返回 1,即使该字符无法容纳在一个 char 的 16 位空间中也是如此。

聚合函数

这些函数接受多个值作为参数,并计算并返回一个聚合值。

函数 签名 描述

avg()

avg(input :: INTEGER | FLOAT | DURATION) :: INTEGER | FLOAT | DURATION

返回一组 INTEGERFLOATDURATION 值的平均值。

collect()

collect(input :: ANY) :: LIST<ANY>

返回一个包含表达式所返回值的列表。

collect_list()

collect_list(input :: ANY) :: LIST<ANY>

返回一个包含表达式所返回值的列表。此函数是 collect() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。 仅限 Cypher 25 在 Neo4j 2026.02 中引入

count()

count(input :: ANY) :: INTEGER

返回值的数量或行数。

max()

max(input :: ANY) :: ANY

返回一组值中的最大值。

min()

min(input :: ANY) :: ANY

返回一组值中的最小值。

percentileCont()

percentileCont(input :: FLOAT, percentile :: FLOAT) :: FLOAT

使用线性插值法返回一组值中指定百分位数的数值。

percentile_cont()

percentile_cont(input :: FLOAT, percentile :: FLOAT) :: FLOAT

使用线性插值法返回一组值中指定百分位数的数值。此函数是 percentileCont() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。 仅限 Cypher 25 在 Neo4j 2026.02 中引入

percentileDisc()

percentileDisc(input :: INTEGER | FLOAT, percentile :: FLOAT) :: FLOAT

使用舍入法返回一组值中与指定百分位数最接近的 INTEGERFLOAT 值。

percentile_disc()

percentile_disc(input :: INTEGER | FLOAT, percentile :: FLOAT) :: INTEGER | FLOAT

使用舍入法返回一组值中与指定百分位数最接近的 INTEGERFLOAT 值。此函数是 percentileDisc() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。 仅限 Cypher 25 在 Neo4j 2026.02 中引入

stDev()

stDev(input :: FLOAT) :: FLOAT

返回给定值在样本总体中的标准差。

stdev_samp()

stdev_samp(input :: FLOAT) :: FLOAT

返回给定值在样本总体中的标准差。此函数是 stDev() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。 仅限 Cypher 25 在 Neo4j 2026.02 中引入

stDevP()

stDevP(input :: FLOAT) :: FLOAT

返回给定值在整个总体中的标准差。

stdev_pop()

stdev_pop(input :: FLOAT) :: FLOAT

返回给定值在整个总体中的标准差。此函数是 stDevP() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。 仅限 Cypher 25 在 Neo4j 2026.02 中引入

sum()

sum(input :: INTEGER | FLOAT | DURATION) :: INTEGER | FLOAT | DURATION

返回一组 INTEGERFLOATDURATION 值的总和。

数据库函数

数据库函数提供有关数据库的信息。

函数 签名 描述

db.nameFromElementId()

db.nameFromElementId(elementId :: STRING) :: STRING

根据给定的元素 ID 解析数据库名称。

图函数

图函数提供有关复合数据库中组成图的信息。

函数 签名 描述

graph.byElementId()

USE graph.byElementId(elementId :: STRING)

解析给定元素 ID 所属的组成图。

graph.byName()

USE graph.byName(name :: STRING)

按名称解析组成图。

graph.names()

graph.names() :: LIST<STRING>

返回一个包含当前复合数据库中所有图名称的列表。

graph.propertiesByName()

graph.propertiesByName(name :: STRING) :: MAP

返回一个包含与给定图关联的属性的映射。

列表函数

这些函数返回其他值的列表。有关列表的更多详细信息和示例,请参阅 列表

函数 签名 描述

coll.distinct()

coll.distinct(list :: LIST<ANY>) :: LIST<ANY>

返回已移除所有重复值的给定列表。 仅限 Cypher 25 在 Neo4j 2025.11 中引入

coll.flatten()

coll.flatten(list :: LIST<ANY>, depth = 1 :: INTEGER) :: LIST<ANY>

返回展平至给定深度的列表。 仅限 Cypher 25 在 Neo4j 2025.11 中引入

coll.indexOf()

coll.indexOf(list :: LIST<ANY>, value :: ANY) :: INTEGER

返回指定值在给定列表中首次匹配的索引;如果不存在该值,则返回 -1。 仅限 Cypher 25 在 Neo4j 2025.11 中引入

coll.insert()

coll.insert(list :: LIST<ANY>, index :: INTEGER, value :: ANY) :: LIST<ANY>

返回将给定值插入到指定索引后的列表。 仅限 Cypher 25 在 Neo4j 2025.11 中引入

coll.max()

coll.max(list :: LIST<ANY>) :: ANY

返回最大值。 仅限 Cypher 25 在 Neo4j 2025.11 中引入

coll.min()

coll.min(list :: LIST<ANY>) :: ANY

返回最小值。 仅限 Cypher 25 在 Neo4j 2025.11 中引入

coll.remove()

coll.remove(list :: LIST<ANY>, index :: INTEGER) :: LIST<ANY>

返回移除指定索引处值后的列表。 仅限 Cypher 25 在 Neo4j 2025.11 中引入

coll.sort()

coll.sort(list :: LIST<ANY>) :: LIST<ANY>

返回排序后的列表。 仅限 Cypher 25 在 Neo4j 2025.11 中引入

keys()

keys(input :: NODE | RELATIONSHIP | MAP) :: LIST<STRING>

返回一个 LIST<STRING>,其中包含 MAPNODERELATIONSHIP 的所有属性名称的 STRING 表示形式。

labels()

labels(input :: NODE) :: LIST<STRING>

返回一个 LIST<STRING>,其中包含 NODE 的所有标签的 STRING 表示形式。

nodes()

nodes(input :: PATH) :: LIST<NODE>

返回一个 LIST<NODE>,其中包含 PATH 中的所有 NODE 值。

range()

range(start :: INTEGER, end :: INTEGER [, step :: INTEGER]) :: LIST<INTEGER>

返回一个包含指定范围内所有 INTEGER 值的 LIST<INTEGER>,可选择指定步长。

reduce()

reduce(accumulator :: VARIABLE = initial :: ANY, variable :: VARIABLE IN list :: LIST<ANY> expression :: ANY) :: ANY

LIST<ANY> 的各个元素运行表达式,并将表达式的结果存储在累加器中。

relationships()

relationships(input :: PATH) :: LIST<RELATIONSHIP>

返回一个 LIST<RELATIONSHIP>,其中包含 PATH 中的所有 RELATIONSHIP 值。

reverse()

reverse(input :: LIST<ANY>) :: LIST<ANY>

返回一个 LIST<ANY>,其中给定 LIST<ANY> 中所有元素的顺序已反转。

tail()

tail(input :: LIST<ANY>) :: LIST<ANY>

返回 LIST<ANY> 中除第一个元素外的所有元素。

toBooleanList()

toBooleanList(input :: LIST<ANY>) :: LIST<BOOLEAN>

将值组成的 LIST<ANY> 转换为 LIST<BOOLEAN>。如果有任何值无法转换为 BOOLEAN,则返回的 LIST<BOOLEAN> 中该位置将为 null。

toFloatList()

toFloatList(input :: VECTOR | LIST<ANY>) :: LIST<FLOAT>

LIST<ANY> 转换为 LIST<FLOAT> 值。如果有任何值无法转换为 FLOAT,则返回的 LIST<FLOAT> 中该位置将为 null。

toIntegerList()

toIntegerList(input :: VECTOR | LIST<ANY>) :: LIST<INTEGER>

LIST<ANY> 转换为 LIST<INTEGER> 值。如果有任何值无法转换为 INTEGER,则返回的 LIST<INTEGER> 中该位置将为 null。

toStringList()

toStringList(input :: LIST<ANY>) :: LIST<STRING>

LIST<ANY> 转换为 LIST<STRING> 值。如果有任何值无法转换为 STRING,则返回的 LIST<STRING> 中该位置将为 null。

LOAD CSV 函数

LOAD CSV 函数可用于获取有关由 LOAD CSV 处理的文件信息。

函数 签名 描述

file()

file() :: STRING

返回 LOAD CSV 正在使用的文件的绝对路径。

linenumber()

linenumber() :: INTEGER

返回 LOAD CSV 当前正在使用的行号。

数学函数

对数函数

这些函数仅对数值表达式进行操作,如果对任何其他值使用,则会返回错误。

函数 签名 描述

e()

e() :: FLOAT

返回自然对数的底数 e。

exp()

exp(input :: FLOAT) :: FLOAT

返回 en,其中 e 是自然对数的底数,n 是参数表达式的值。

log()

log(input :: FLOAT) :: FLOAT

返回 FLOAT 的自然对数。

ln()

ln(input :: FLOAT) :: FLOAT

返回 FLOAT 的自然对数。此函数是 log() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。 仅限 Cypher 25 在 Neo4j 2026.02 中引入

log10()

log10(input :: FLOAT) :: FLOAT

返回 FLOAT 的常用对数(底数为 10)。

sqrt()

sqrt(input :: FLOAT) :: FLOAT

返回 FLOAT 的平方根。

数值函数

这些函数仅对数值表达式进行操作,如果对任何其他值使用,则会返回错误。

函数 签名 描述

abs()

abs(input :: INTEGER | FLOAT) :: INTEGER | FLOAT

返回 INTEGERFLOAT 的绝对值。

ceil()

ceil(input :: FLOAT) :: FLOAT

返回大于或等于给定数字且等于 INTEGER 的最小 FLOAT

ceiling()

ceiling(input :: FLOAT) :: FLOAT

返回大于或等于给定数字且等于 INTEGER 的最小 FLOAT。此函数是 ceil() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。 仅限 Cypher 25 在 Neo4j 2026.02 中引入

floor()

floor(input :: FLOAT) :: FLOAT

返回小于或等于给定数字且等于 INTEGER 的最大 FLOAT

isNaN()

isNaN(input :: INTEGER | FLOAT) :: BOOLEAN

如果浮点数为 NaN,则返回 true

rand()

rand() :: FLOAT

返回一个介于 0(含)到 1(不含)之间的随机 FLOAT

round()

round(input :: FLOAT [, precision :: INTEGER | FLOAT, mode :: STRING]) :: FLOAT

返回四舍五入到最近 INTEGER 的数值,可选择使用指定的精度和舍入模式。

sign()

sign(input :: INTEGER | FLOAT) :: INTEGER

返回 INTEGERFLOAT 的符号:如果数字为 0,则返回 0;如果为负数,则返回 -1;如果为正数,则返回 1。

三角函数

这些函数仅对数值表达式进行操作,如果对任何其他值使用,则会返回错误。

除非另有说明,所有三角函数均以弧度为单位进行操作。

函数 签名 描述

acos()

acos(input :: FLOAT) :: FLOAT

返回以弧度表示的 FLOAT 的反余弦值。

asin()

asin(input :: FLOAT) :: FLOAT

返回以弧度表示的 FLOAT 的反正弦值。

atan()

atan(input :: FLOAT) :: FLOAT

返回以弧度表示的 FLOAT 的反正切值。

atan2()

atan2(y :: FLOAT, x :: FLOAT) :: FLOAT

返回以弧度表示的一组坐标的反正切值 (atan2)。

cos()

cos(input :: FLOAT) :: FLOAT

返回 FLOAT 的余弦值。

cosh()

cosh(input :: FLOAT) :: FLOAT

返回 FLOAT 的双曲余弦值。 仅限 Cypher 25 在 Neo4j 2025.06 中引入

cot()

cot(input :: FLOAT) :: FLOAT

返回 FLOAT 的余切值。

coth()

coth(input :: FLOAT) :: FLOAT

返回 FLOAT 的双曲余切值。 仅限 Cypher 25 在 Neo4j 2025.06 中引入

degrees()

degrees(input :: FLOAT) :: FLOAT

将弧度转换为角度。

haversin()

haversin(input :: FLOAT) :: FLOAT

返回一个数字的一半正矢值。

pi()

pi() :: FLOAT

返回数学常数 pi。

radians()

radians(input :: FLOAT) :: FLOAT

将角度转换为弧度。

sin()

sin(input :: FLOAT) :: FLOAT

返回 FLOAT 的正弦值。

sinh()

sinh(input :: FLOAT) :: FLOAT

返回 FLOAT 的双曲正弦值。 仅限 Cypher 25 在 Neo4j 2025.06 中引入

tan()

tan(input :: FLOAT) :: FLOAT

返回 FLOAT 的正切值。

tanh()

tanh(input :: FLOAT) :: FLOAT

返回 FLOAT 的双曲正切值。 仅限 Cypher 25 在 Neo4j 2025.06 中引入

谓词函数

这些函数针对给定的参数返回 true 或 false。

函数 签名 描述

all()

all(variable :: ANY, list :: LIST<ANY>, predicate :: ANY) :: BOOLEAN

如果谓词对给定 LIST<ANY> 中的所有元素成立,则返回 true。

allReduce()

allReduce(accumulator = initial, stepVariable IN list | reductionFunction, predicate) :: BOOLEAN

如果在对给定 LIST<ANY> 中的元素进行逐步求值过程中,累积的结果在每一步都满足指定的谓词,则返回 true。当该列表是量化路径模式中定义的组变量时,它允许提前修剪不满足谓词的路径。 仅限 Cypher 25 在 Neo4j 2025.08 中引入

any()

any(variable :: ANY, list :: LIST<ANY>, predicate :: ANY) :: BOOLEAN

如果谓词对给定 LIST<ANY> 中的至少一个元素成立,则返回 true。

exists()

exists(input :: ANY) :: BOOLEAN

如果图中存在与模式匹配的结果,则返回 true

isEmpty()

isEmpty(input :: LIST<ANY> | MAP | STRING ) :: BOOLEAN

检查给定的 LIST<ANY>MAPSTRING 是否为空。

none()

none(variable :: ANY, list :: LIST<ANY>, predicate :: ANY) :: BOOLEAN

如果谓词对给定 LIST<ANY> 中的任何元素都不成立,则返回 true。

single()

single(variable :: ANY, list :: LIST<ANY>, predicate :: ANY) :: BOOLEAN

如果谓词对给定 LIST<ANY> 中的恰好一个元素成立,则返回 true。

标量函数

这些函数返回单个值。

函数 签名 描述

char_length()

char_length(input :: STRING) :: INTEGER

返回 STRING 中 Unicode 字符的数量。

character_length()

character_length(input :: STRING) :: INTEGER

返回 STRING 中 Unicode 字符的数量。

coalesce()

coalesce(input :: ANY) :: ANY

返回表达式列表中第一个非 null 的值。

elementId()

elementId(input :: NODE | RELATIONSHIP) :: STRING

返回在特定事务和 DBMS 中唯一的节点或关系标识符。

endNode()

endNode(input :: RELATIONSHIP) :: NODE

返回 RELATIONSHIP 的结束 NODE

head()

head(list :: LIST<ANY>) :: ANY

返回 LIST<ANY> 中的第一个元素。

id()

id(input :: NODE | RELATIONSHIP) :: INTEGER

已弃用 返回 NODERELATIONSHIP 的 ID。已被 elementId() 取代。

last()

last(list :: LIST<ANY>) :: ANY

返回 LIST<ANY> 中的最后一个元素。

length()

length(input :: PATH) :: INTEGER

返回 PATH 的长度。

path_length()

path_length(input :: PATH) :: INTEGER

返回 PATH 的长度。此函数是 length() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。 仅限 Cypher 25 在 Neo4j 2026.02 中引入

nullIf()

nullIf(v1 :: ANY, v2 :: ANY) :: ANY

如果给定的两个参数相等,则返回 null,否则返回第一个参数的值。

properties()

properties(input :: NODE | RELATIONSHIP | MAP) :: MAP

返回一个包含 NODERELATIONSHIP 所有属性的 MAP

randomUUID()

randomUUID() :: STRING

生成一个随机 UUID。

size()

size(input STRING | LIST<ANY>) :: INTEGER

返回 LIST<ANY> 中的项目数或 STRING 中的 Unicode 字符数。

startNode()

startNode(input :: RELATIONSHIP) :: NODE

返回 RELATIONSHIP 的起始 NODE

timestamp()

timestamp() :: INTEGER

返回当前时间与 1970 年 1 月 1 日午夜(UTC)之间的时间差(以毫秒为单位)。

toBoolean()

toBoolean(input :: BOOLEAN | STRING | INTEGER) :: BOOLEAN

BOOLEANSTRINGINTEGER 值转换为 BOOLEAN 值。

toBooleanOrNull()

toBooleanOrNull(input :: ANY) :: BOOLEAN

将值转换为 BOOLEAN 值,如果无法转换,则返回 null。

toFloat()

toFloat(input :: STRING | INTEGER | FLOAT) :: FLOAT

STRINGINTEGER 值转换为 FLOAT 值。

toFloatOrNull()

toFloatOrNull(input :: ANY) :: FLOAT

将值转换为 FLOAT 值,如果无法转换,则返回 null。

toInteger()

toInteger(input :: BOOLEAN | STRING | INTEGER | FLOAT) :: INTEGER

BOOLEANSTRINGFLOAT 值转换为 INTEGER 值。

toIntegerOrNull()

toIntegerOrNull(input :: ANY) :: INTEGER

将值转换为 INTEGER 值,如果无法转换,则返回 null。

type()

type(input :: RELATIONSHIP) :: STRING

返回 RELATIONSHIP 类型的 STRING 表示形式。

valueType()

valueType(input :: ANY) :: STRING

返回给定表达式求值结果的最精确值类型的 STRING 表示形式。

字符串函数

这些函数用于操作 STRING 值或创建另一个值的 STRING 表示形式。

函数 签名 描述

btrim()

btrim(original :: STRING [, trimCharacterString :: STRING ]) :: STRING

返回已删除前导和尾随空白的给定 STRING,可选择指定要删除的 trimCharacterString 值。

left()

left(original :: STRING, length :: INTEGER) :: STRING

返回包含给定 STRING 中指定数量(INTEGER)最左侧字符的 STRING

lower()

lower(input :: STRING) :: STRING

返回给定 STRING 的小写形式。此函数是 toLower() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。

ltrim()

ltrim(input :: STRING [, trimCharacterString :: STRING]) :: STRING

返回已删除前导空白的给定 STRING,可选择指定要删除的 trimCharacterString

normalize()

normalize(input :: STRING [,normalForm = NFC :: [NFC, NFD, NFKC, NFKD]]) :: STRING

规范化 STRING,可选择指定规范化形式。

replace()

replace(original :: STRING, search :: STRING, replace :: STRING) :: STRING

返回一个 STRING,其中所有出现的指定搜索 STRING 已被另一个(指定)替换 STRING 替换。

reverse()

reverse(input :: STRING) :: STRING

返回一个 STRING,其中给定 STRING 中所有字符的顺序已反转。

right()

right(original :: STRING, length :: INTEGER) :: STRING

返回包含给定 STRING 中指定数量最右侧字符的 STRING

rtrim()

rtrim(input :: STRING [, trimCharacterString :: STRING]) :: STRING

返回已删除尾随空白的给定 STRING,可选择指定要删除的 trimCharacterString 字符。

split()

split(original :: STRING, splitDelimiters :: LIST<STRING>) :: LIST<STRING>

返回将给定 STRING 按照任何给定的分隔符拆分后的 LIST<STRING>

substring()

substring(original :: STRING, start :: INTEGER length :: INTEGER) :: STRING

从给定的 STRING 中返回指定 length 的子字符串,起始位置由基于 0 的索引确定。

toLower()

toLower(input :: STRING) :: STRING

返回给定 STRING 的小写形式。

toString()

toString(input :: ANY) :: STRING

INTEGERFLOATBOOLEANPOINT 或时间类型(例如 DATEZONED TIMELOCAL TIMEZONED DATETIMELOCAL DATETIMEDURATION)的值转换为 STRING

toStringOrNull()

toStringOrNull(input :: ANY) :: STRING

INTEGERFLOATBOOLEANPOINT 或时间类型(例如 DATEZONED TIMELOCAL TIMEZONED DATETIMELOCAL DATETIMEDURATION)的值转换为 STRING,如果无法转换,则返回 null。

toUpper()

toUpper(input :: STRING) :: STRING

返回给定 STRING 的大写形式。

trim()

trim(trimCharacterString :: STRING, trimSpecification :: STRING, input :: STRING) :: STRING

返回已删除前导和/或尾随 trimCharacterString 字符的给定 STRING

upper()

upper(input :: STRING) :: STRING

返回给定 STRING 的大写形式。此函数是 toUpper() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。

空间函数

这些函数用于指定地理或笛卡尔坐标参考系统中的 2D 或 3D 点,并计算两点之间的测地距离。

函数 签名 描述

point()

point(input :: MAP) :: POINT

返回一个 2D 或 3D 点对象,该对象由笛卡尔坐标系或 WGS 84 地理坐标系中的两个或三个坐标值给定。

point.distance()

point.distance(from :: POINT, to :: POINT) :: FLOAT

返回一个表示同一坐标参考系中任意两点之间距离的 FLOAT。如果这些点位于 WGS 84 坐标系中,该函数返回测地距离(即地球弯曲表面上的最短路径)。如果这些点位于笛卡尔坐标系中,该函数返回欧几里得距离(即平坦平面空间中的最短直线距离)。

point.withinBBox()

point.withinBBox(point :: POINT, lowerLeft :: POINT, upperRight :: POINT) :: BOOLEAN

如果提供的点在由两个提供的点(lowerLeftupperRight)定义的边界框内,则返回 true

时间函数

持续时间函数

时间类型DURATION 值可以使用以下函数进行创建和操作。

函数 签名 描述

duration()

duration(input :: ANY) :: DURATION

构建一个 DURATION 值。

duration.between()

duration.between(from :: ANY, to :: ANY) :: DURATION

以逻辑单位计算 from 时刻(含)和 to 时刻(不含)之间的 DURATION

duration_between()

duration_between(from :: ANY, to :: ANY) :: DURATION

以逻辑单位计算 from 时刻(含)和 to 时刻(不含)之间的 DURATION。此函数是 duration.between() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。

duration.inDays()

duration.inDays(from :: ANY, to :: ANY) :: DURATION

以天为单位计算 from 时刻(含)和 to 时刻(不含)之间的 DURATION

duration.inMonths()

duration.inMonths(from :: ANY, to :: ANY) :: DURATION

以月为单位计算 from 时刻(含)和 to 时刻(不含)之间的 DURATION

duration.inSeconds()

duration.inSeconds(from :: ANY, to :: ANY) :: DURATION

以秒为单位计算 from 时刻(含)和 to 时刻(不含)之间的 DURATION

时刻类型函数

时间类型的值——DATEZONED TIMELOCAL TIMEZONED DATETIMELOCAL DATETIME——可以使用以下函数进行创建和操作。

函数 签名 描述

date()

date(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: DATE

创建一个 DATE 时刻。

date.realtime()

date.realtime(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: DATE

使用实时时钟返回当前的 DATE 瞬时值。

date.statement()

date.statement(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: DATE

使用语句时钟返回当前的 DATE 瞬时值。

date.transaction()

date.transaction(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: DATE

使用事务时钟返回当前的 DATE 瞬时值。

date.truncate()

date.truncate(unit :: STRING, input = DEFAULT_TEMPORAL_ARGUMENT :: ANY, fields = null :: MAP) :: DATE

使用指定的单位将给定的时间值截断为 DATE 时刻。

datetime()

datetime(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: ZONED DATETIME

创建一个 ZONED DATETIME 时刻。

zoned_datetime()

zoned_datetime(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: ZONED DATETIME

创建一个 ZONED DATETIME 时刻。此函数是 datetime() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。

datetime.fromEpoch()

datetime.fromEpoch(seconds :: INTEGER | FLOAT, nanoseconds :: INTEGER | FLOAT) :: ZONED DATETIME

给定纪元开始后的秒数和纳秒数,创建一个 ZONED DATETIME

datetime.fromEpochMillis()

datetime.fromEpochMillis(milliseconds :: INTEGER | FLOAT) :: ZONED DATETIME

给定纪元开始后的毫秒数,创建一个 ZONED DATETIME

datetime.realtime()

datetime.realtime(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: ZONED DATETIME

使用实时时钟返回当前的 ZONED DATETIME 瞬时值。

datetime.statement()

datetime.statement(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: ZONED DATETIME

使用语句时钟返回当前的 ZONED DATETIME 瞬时值。

datetime.transaction()

datetime.transaction(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: ZONED DATETIME

使用事务时钟返回当前的 ZONED DATETIME 瞬时值。

datetime.truncate()

datetime.truncate(unit :: STRING, input = DEFAULT_TEMPORAL_ARGUMENT :: ANY, fields = null :: MAP) :: ZONED DATETIME

使用指定的单位将给定的时间值截断为 ZONED DATETIME 瞬时值。

localdatetime()

localdatetime(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: LOCAL DATETIME

创建一个 LOCAL DATETIME 时刻。

local_datetime()

local_datetime(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: LOCAL DATETIME

创建一个 LOCAL DATETIME 时刻。此函数是 localdatetime() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。

localdatetime.realtime()

localdatetime.realtime(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: LOCAL DATETIME

使用实时时钟返回当前的 LOCAL DATETIME 瞬时值。

localdatetime.statement()

localdatetime.statement(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: LOCAL DATETIME

使用语句时钟返回当前的 LOCAL DATETIME 瞬时值。

localdatetime.transaction()

localdatetime.transaction(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: LOCAL DATETIME

使用事务时钟返回当前的 LOCAL DATETIME 瞬时值。

localdatetime.truncate()

localdatetime.truncate(unit :: STRING, input = DEFAULT_TEMPORAL_ARGUMENT :: ANY, fields = null :: MAP) :: LOCAL DATETIME

使用指定的单位将给定的时间值截断为 LOCAL DATETIME 瞬时值。

localtime()

localtime(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: LOCAL TIME

创建一个 LOCAL TIME 时刻。

local_time()

local_time(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: LOCAL TIME

创建一个 LOCAL TIME 时刻。此函数是 localtime() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。

localtime.realtime()

localtime.realtime(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: LOCAL TIME

使用实时时钟返回当前的 LOCAL TIME 瞬时值。

localtime.statement()

localtime.statement(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: LOCAL TIME

使用语句时钟返回当前的 LOCAL TIME 瞬时值。

localtime.transaction()

localtime.transaction(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: LOCAL TIME

使用事务时钟返回当前的 LOCAL TIME 瞬时值。

localtime.truncate()

localtime.truncate(unit :: STRING, input = DEFAULT_TEMPORAL_ARGUMENT :: ANY, fields = null :: MAP) :: LOCAL TIME

使用指定的单位将给定的时间值截断为 LOCAL TIME 瞬时值。

time()

time(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: ZONED TIME

创建一个 ZONED TIME 时刻。

zoned_time()

zoned_time(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: ZONED TIME

创建一个 ZONED TIME 时刻。此函数是 time() 函数的别名,它是作为 Cypher GQL 一致性的一部分引入的。

time.realtime()

time.realtime(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: ZONED TIME

使用实时时钟返回当前的 ZONED TIME 瞬时值。

time.statement()

time.statement(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: ZONED TIME

使用语句时钟返回当前的 ZONED TIME 瞬时值。

time.transaction()

time.transaction(timezone = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: ZONED TIME

使用事务时钟返回当前的 ZONED TIME 瞬时值。

time.truncate()

time.truncate(unit :: STRING, input = DEFAULT_TEMPORAL_ARGUMENT :: ANY, fields = null :: MAP) :: ZONED TIME

使用指定的单位将给定的时间值截断为 ZONED TIME 瞬时值。

格式化函数

这些函数用于格式化时间实例和持续时间值。

函数 签名 描述

format()

format(value :: DATE | LOCAL TIME | ZONED TIME | LOCAL DATETIME | ZONED DATETIME | DURATION[, pattern :: STRING]) :: STRING

返回 ISO 格式的 STRING 或按提供的模式格式化的 STRING 形式的时间值。

用户定义函数

用户定义函数使用 Java 编写,部署到数据库中,并以与其他任何 Cypher 函数相同的方式调用。主要有两种类型的函数可以开发和使用:

类型 描述 用法 开发

标量

对于每一行,该函数接收参数并返回结果。

使用 UDF

扩展 Neo4j (UDF)

聚合

消耗多行数据并产生聚合结果。

使用聚合 UDF

扩展 Neo4j (聚合 UDF)

向量函数

向量函数允许您计算向量对的相似度得分。

函数 签名 描述

vector()

vector(vectorValue :: STRING | LIST<INTEGER | FLOAT>, dimension :: INTEGER, coordinateType :: [INTEGER64, INTEGER32, INTEGER16, INTEGER8, FLOAT64, FLOAT32]) :: VECTOR

构建一个 VECTOR 值。 仅限 Cypher 25 在 Neo4j 2025.10 中引入

vector.similarity.cosine()

vector.similarity.cosine(a :: VECTOR | LIST<INTEGER | FLOAT>, b :: VECTOR | LIST<INTEGER | FLOAT>) :: FLOAT

返回一个 FLOAT,表示基于余弦算法的参数向量之间的相似度。

vector.similarity.euclidean()

vector.similarity.euclidean(a :: VECTOR | LIST<INTEGER | FLOAT>, b :: VECTOR | LIST<INTEGER | FLOAT>) :: FLOAT

返回一个 FLOAT,表示基于欧几里得距离算法的参数向量之间的相似度。

vector_dimension_count()

(vector :: VECTOR) :: INTEGER

返回 VECTOR 的维度。 仅限 Cypher 25 在 Neo4j 2025.10 中引入

vector_distance()

(vector1 :: VECTOR, vector2 :: VECTOR, vectorDistanceMetric :: [EUCLIDEAN, EUCLIDEAN_SQUARED, MANHATTAN, COSINE, DOT, HAMMING]) :: FLOAT

返回一个 FLOAT,表示基于所选 vectorDistanceMetric 算法的两个向量值之间的距离。 仅限 Cypher 25 在 Neo4j 2025.10 中引入

vector_norm()

vector_norm(vector :: VECTOR, vectorDistanceMetric :: [EUCLIDEAN, MANHATTAN]) :: FLOAT

返回一个 FLOAT,表示给定向量与所有坐标设为零的相同维度向量之间的距离,该距离使用指定的 vectorDistanceMetric 计算得出。 仅限 Cypher 25 在 Neo4j 2025.10 中引入