Cypher 附加功能

虽然 GQL 标准 包含 Cypher® 的许多功能,但 Cypher 包含一些不属于 GQL 的附加功能,并且目前还没有 GQL 替代方案。本页介绍了这些 Cypher 功能。

子句

Cypher 功能 描述

从 CSV 文件导入数据。

确保图中存在模式。模式已经存在,或者需要创建。

子查询

Cypher 功能 描述

在独立的内部事务中执行 CALL 子查询,生成中间提交。

用于使用子查询返回的行创建列表。

用于计算子查询返回的行数。

用于发现指定模式是否在图中至少存在一次

值和类型

Cypher 功能 描述

空间值。

映射值 - GQL 等效项是记录。

理解和投影

Cypher 功能 描述

基于现有列表创建 LIST 的语法结构。

从节点、关系和其他 MAP 值构造 MAP 投影。

基于模式匹配创建 LIST 的语法结构。

函数

数据库函数

Cypher 功能 描述

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

GenAI 函数

Cypher 功能 描述

为单个值生成向量嵌入。

图函数

Cypher 功能 描述

返回具有给定元素 ID 的图引用。它仅在复合数据库的 USE 子句中受支持。

返回给定名称的图引用。它仅在复合数据库的 USE 子句中受支持。

列出当前数据库中图的名称。

返回与图关联的属性 MAP

列表函数

Cypher 功能 描述

返回包含 NODERELATIONSHIPMAP 的所有属性名称的 STRING 表示形式的 LIST<STRING>

返回包含 NODE 的所有标签的 STRING 表示形式的 LIST<STRING>

返回包含 PATH 中所有 NODE 值的 LIST<NODE>

返回包含指定范围内的所有 INTEGER 值的 LIST<INTEGER>

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

返回包含 PATH 中所有 RELATIONSHIP 值的 LIST<RELATIONSHIP>

返回一个 STRINGLIST<ANY>,其中给定 STRINGLIST<ANY> 中所有字符或元素的顺序已颠倒。

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

LIST<ANY> 值转换为 LIST<BOOLEAN> 值。如果任何值不可转换为 BOOLEAN,它们将在返回的 LIST<BOOLEAN> 中为 null。

LIST<ANY> 转换为 LIST<FLOAT> 值。如果任何值不可转换为 FLOAT,它们将在返回的 LIST<FLOAT> 中为 null。

LIST<ANY> 转换为 LIST<INTEGER> 值。如果任何值不可转换为 INTEGER,它们将在返回的 LIST<INTEGER> 中为 null。

INTEGERFLOATBOOLEANPOINT 或时间类型(即 DATEZONED TIMELOCAL TIMEZONED DATETIMELOCAL DATETIMEDURATION)值转换为 STRING,如果值不可转换,则为 null。

LOAD CSV 函数

Cypher 功能 描述

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

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

对数函数

Cypher 功能 描述

e()

返回自然对数的底数 e。

数字函数

Cypher 功能 描述

返回给定的 INTEGERFLOAT 是否为 NaN。

返回从 0(包含)到 1(不包含)的随机 FLOAT

返回四舍五入到最接近 INTEGER 的数字的值。

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

谓词函数

Cypher 功能 描述

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

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

检查STRINGMAPLIST<ANY>是否为空。

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

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

标量函数

Cypher 功能 描述

返回RELATIONSHIP的结束NODE

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

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

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

生成一个随机 UUID。

返回RELATIONSHIP的开始NODE

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

返回给定表达式计算到的最精确值类型的STRING表示形式。

空间函数

Cypher 功能 描述

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

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

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

字符串函数

Cypher 功能 描述

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

返回一个 STRINGLIST<ANY>,其中给定 STRINGLIST<ANY> 中所有字符或元素的顺序已颠倒。

返回一个LIST<STRING>,该列表是将给定STRING围绕给定分隔符(s)的匹配项进行拆分的结果。

返回给定STRING的子字符串,从 0 为基的索引开始。

三角函数

Cypher 功能 描述

返回一组坐标的反正切 2,以弧度表示。

返回一个数字的半正矢。

返回数学常数 pi。

时间持续时间函数

Cypher 功能 描述

计算从from时刻(包含)到to时刻(不包含)之间的DURATION,以天为单位。

计算从from时刻(包含)到to时刻(不包含)之间的DURATION,以月为单位。

计算从from时刻(包含)到to时刻(不包含)之间的DURATION,以秒为单位。

时间时刻函数

Cypher 功能 描述

使用实时时钟返回当前DATE时刻。

使用语句时钟返回当前DATE时刻。

使用事务时钟返回当前DATE时刻。

使用事务时钟返回当前DATE时刻。

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

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

使用实时时钟返回当前ZONED DATETIME时刻。

使用语句时钟返回当前ZONED DATETIME时刻。

使用事务时钟返回当前ZONED DATETIME时刻。

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

使用实时时钟返回当前LOCAL DATETIME时刻。

使用语句时钟返回当前LOCAL DATETIME时刻。

使用事务时钟返回当前LOCAL DATETIME时刻。

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

使用实时时钟返回当前LOCAL TIME时刻。

使用语句时钟返回当前LOCAL TIME时刻。

使用事务时钟返回当前LOCAL TIME时刻。

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

使用实时时钟返回当前ZONED TIME时刻。

使用语句时钟返回当前ZONED TIME时刻。

使用事务时钟返回当前ZONED TIME时刻。

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

向量函数

Cypher 功能 描述

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

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

索引

Cypher 功能 描述

Neo4j 的默认索引。支持大多数类型的谓词。

解决对STRING值进行操作的谓词。针对使用STRING运算符CONTAINSENDS WITH进行过滤的查询进行了优化。

解决对空间POINT值进行操作的谓词。针对对距离或边界框内进行过滤的查询进行了优化。

仅解决节点标签和关系类型谓词(即它们不能解决对属性进行过滤的任何谓词)。

支持在STRING属性的内容内进行搜索,以及在查询字符串和数据库中存储的STRING值之间进行相似性比较。

支持相似性搜索和复杂分析查询,方法是将节点或属性表示为多维空间中的向量。

Cypher 允许使用索引提示在创建执行计划时影响规划器。索引提示使用USING关键字指定。

约束

GQL 支持GRAPH TYPES作为约束图模式的一种方式,但不支持单个约束。

Cypher 功能 描述

确保对具有特定标签的所有节点或具有特定类型的全部关系,组合的属性值都是唯一的。

确保属性对于具有特定标签的所有节点或具有特定类型的全部关系都存在。

确保属性对具有特定标签的所有节点或具有特定类型的全部关系都具有所需的属性类型。

确保对具有特定标签的所有节点或具有特定类型的全部关系,所有属性都存在,并且组合的属性值都是唯一的。

运算符

Cypher 功能 描述

STRING比较运算符。

IN

LIST值的IN谓词。

查询优化

Cypher 功能 描述

可选地前缀于查询,以生成执行计划。EXPLAIN 仅生成执行计划,但不运行查询;PROFILE 同时执行这两项操作。

CYPHER runtime=parallel

Cypher 允许设置查询的运行时,决定查询的执行方式。可用的 Cypher 运行时包括:slotted、pipelined、parallel。

CYPHER inferSchemaParts=off

Cypher 允许设置众多查询选项。有关更多信息,请参阅查询选项

管理

Cypher 管理命令的文档位于 Neo4j 的操作手册中。
Cypher 功能 描述

用于CREATESHOWALTERDROP标准数据库和复合数据库的命令。

用于CREATESHOWALTERDROP数据库别名的命令。

用于管理集群中的服务器以及分配给它们的数据库的命令。

用于管理用户、角色和权限的命令。