通知代码列表
以下页面提供了 Neo4j 中所有通知的概述,包括 GQLSTATUS 代码和 Neo4j 代码,以及一些场景及其可能的解决方案。
|
请注意,虽然 GQLSTATUS 代码保持稳定(对其进行的任何更改都将是破坏性的),但与这些代码关联的状态描述的更改并不是破坏性的,并且可能随时发生。因此,不建议解析状态描述或将其合并到脚本中。 |
PERFORMANCE(性能)通知
每当查询使用代价高昂的操作,且可以通过更改查询或添加索引来提高性能时,就会返回性能通知。
笛卡尔积
当计划中存在笛卡尔积时,会返回此通知。
Neo4j 代码 |
|
标题 |
此查询在断开连接的模式之间构建了一个笛卡尔积。 |
描述 |
如果查询的一部分包含多个断开连接的模式,这将在所有这些部分之间构建一个笛卡尔积。这可能会产生大量数据并减慢查询处理速度。虽然有时是故意的,但通常可以通过重新表述查询来避免使用这种交叉乘积,例如通过在不同部分之间添加关系或使用 OPTIONAL MATCH ( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
信息:笛卡尔积。断开连接的模式 |
分类 |
|
严重性级别 |
|
- 查询
-
MATCH (c:Child), (p:Parent) RETURN c, p - 返回的 GQLSTATUS 代码
-
03N90
- 返回的状态描述
-
信息:笛卡尔积。断开连接的模式
(c:Child), (p:Parent)构建了一个笛卡尔积。笛卡尔积可能会产生大量数据并减慢查询处理速度。 - 改进建议
-
如果确实需要笛卡尔积,则无法优化此查询。但在许多情况下,您可能不需要所有子项和父项的组合,此时可以改进该查询。例如,如果您需要子项及其父项,可以通过将其重写为以下内容来改进此查询:
MATCH (c:Child)-[:ChildOf]->(p:Parent) RETURN c, p
- 查询
-
MATCH (c:Child), (p:Parent) RETURN c, p - 返回代码描述
-
如果查询的一部分包含多个断开连接的模式,这将在所有这些部分之间构建一个笛卡尔积。这可能会产生大量数据并减慢查询处理速度。虽然有时是故意的,但通常可以通过重新表述查询来避免使用这种交叉乘积,例如通过在不同部分之间添加关系或使用
OPTIONAL MATCH(标识符为:(p))。 - 改进建议
-
如果确实需要笛卡尔积,则无法优化此查询。但在许多情况下,您可能不需要所有子项和父项的组合,此时可以改进该查询。例如,如果您需要子项及其父项,可以通过将其重写为以下内容来改进此查询:
MATCH (c:Child)-[:ChildOf]->(p:Parent) RETURN c, p
无界变长模式
当未对变长关系指定上限时,会返回此通知。
Neo4j 代码 |
|
标题 |
提供的模式是无界的,请考虑为节点跳数添加上限。 |
描述 |
对无界模式使用最短路径很可能导致较长的执行时间。建议在模式中对节点跳数使用上限。 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
信息:无界变长模式。提供的模式 |
分类 |
|
严重性级别 |
|
- 查询
-
MATCH p=shortestPath((n)-[*]->(m)) WHERE n <> m RETURN p - 返回的 GQLSTATUS 代码
-
03N91
- 返回的状态描述
-
信息:无界变长模式。提供的模式
(n)-[*]→(m)是无界的。对无界模式使用最短路径可能会导致较长的执行时间。请在模式中的节点跳数上使用上限(例如[*..5])。 - 改进建议
-
如果您的图很大,此查询可能会非常慢。请考虑添加上限。
MATCH p=shortestPath((n)-[*..8]->(m)) WHERE n <> m RETURN p
- 查询
-
MATCH p=shortestPath((n)-[*]->(m)) RETURN p - 返回代码描述
-
对无界模式使用最短路径很可能导致较长的执行时间。建议在模式中对节点跳数使用上限。
- 改进建议
-
如果您的图很大,此查询可能会非常慢。请考虑添加上限。
MATCH p=shortestPath((n)-[*..8]->(m)) RETURN p
穷举最短路径
当在最短路径上给出的谓词需要在决定其是否有效之前检查整条路径时,会返回此通知。最短路径可能会回退到穷举搜索算法。有关更多信息,请参阅 Cypher 手册 → 最短路径 - 路径上的额外谓词检查。
Neo4j 代码 |
|
标题 |
您的查询已计划使用穷举最短路径,这意味着可能不会使用最短路径图算法来查找最短路径。因此,可能会使用所有路径的穷举枚举来查找所请求的最短路径。 |
描述 |
对最短路径使用穷举搜索回退可能会导致查询减慢,因为最短路径图算法可能不适用于此用例。建议引入一个 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
信息:穷举最短路径。由于存在谓词 |
分类 |
|
严重性级别 |
|
- 查询
-
MATCH p = shortestPath(()-[*..42]-()) WHERE ANY(n in nodes(p) WHERE n:Label) RETURN p - 返回的 GQLSTATUS 代码
-
03N92
- 返回的状态描述
-
信息:穷举最短路径。由于存在谓词
ANY(n in nodes(p) WHERE n:Label),查询将以穷举最短路径方式运行。可以使用WITH将MATCH与存在谓词分开。 - 改进建议
-
在
MATCH子句后引入WITH以分离谓词。MATCH p = shortestPath(()-[*..42]-()) WITH p WHERE ANY(n in nodes(p) WHERE n:Label) RETURN p
- 查询
-
MATCH p = shortestPath(()-[*..42]-()) WHERE ANY(n in nodes(p) WHERE n:Label) RETURN p - 返回代码描述
-
对最短路径使用穷举搜索回退可能会导致查询减慢,因为最短路径图算法可能不适用于此用例。建议引入一个
WITH子句,将包含最短路径的MATCH与该路径上的存在谓词分开。 - 改进建议
-
在
MATCH子句后引入WITH以分离谓词。MATCH p = shortestPath(()-[*..42]-()) WITH p WHERE ANY(n in nodes(p) WHERE n:Label) RETURN p
无适用索引
当在 LOAD CSV 中使用与非索引标签匹配的 MATCH 或 MERGE 子句时,会返回此通知。这在大数据集上可能表现不佳。添加索引可以提高查询速度。
Neo4j 代码 |
|
标题 |
添加模式索引可能会加快此查询的速度。 |
描述 |
使用 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
信息:无适用索引。在没有索引的标签上将 |
分类 |
|
严重性级别 |
|
LOAD CSV 与 MATCH 或 MERGE- 查询
-
LOAD CSV FROM 'file:///ignore/ignore.csv' AS line WITH * MATCH (n:Person{name:line[0]}) RETURN line, n - 返回的 GQLSTATUS 代码
-
03N93
- 返回的状态描述
-
信息:无适用索引。在没有索引的标签上将
LOAD CSV与MATCH或MERGE结合使用可能会导致较长的执行时间。请考虑为标签Person添加索引。 - 改进建议
-
为您匹配的标签和属性创建索引。
CREATE INDEX FOR (n:Person) ON (n.name)
- 查询
-
LOAD CSV FROM 'file:///ignore/ignore.csv' AS line WITH * MATCH (n:Person{name:line[0]}) RETURN line, n - 返回代码描述
-
使用
LOAD CSV后跟与非索引标签匹配的MATCH或MERGE很可能在大数据集上表现不佳。请考虑使用模式索引。 - 改进建议
-
为您匹配的标签和属性创建索引。
CREATE INDEX FOR (n:Person) ON (n.name)
Eager 运算符
当查询的执行计划包含 Eager 运算符时,会返回此通知。
Neo4j 代码 |
|
标题 |
此查询的执行计划包含 Eager 运算符,它强制所有依赖数据在继续之前在主内存中具体化。 |
描述 |
在执行计划包含 Eager 运算符的查询中对大数据集使用 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
信息:Eager 运算符。查询执行计划包含 |
分类 |
|
严重性级别 |
|
LOAD CSV- 查询
-
LOAD CSV FROM 'file:///ignore/ignore.csv' AS line MATCH (n:Person{name:line[0]}) DELETE n RETURN line - 返回的 GQLSTATUS 代码
-
03N94
- 返回的状态描述
-
信息:Eager 运算符。查询执行计划包含
Eager运算符。将LOAD CSV与Eager结合使用可能会消耗大量内存。 - 改进建议
-
有关更多信息以及如何避免问题的提示,请参阅 Cypher 手册 → Eager 运算符。在此特定情况下,查询可以重写为以下内容:
LOAD CSV FROM 'file:///ignore/ignore.csv' AS line CALL { WITH line MATCH (n:Person{name:line[0]}) DELETE n } RETURN line
LOAD CSV 与 Eager 运算符一起使用可能会占用大量内存。
- 查询
-
LOAD CSV FROM 'file:///ignore/ignore.csv' AS line MATCH (n:Person{name:line[0]}) DELETE n RETURN line - 返回代码描述
-
在执行计划包含 Eager 运算符的查询中对大数据集使用
LOAD CSV可能会消耗大量内存,并且可能表现不佳。有关更多信息以及如何避免问题的提示,请参阅 Neo4j 手册中关于 Eager 运算符的条目。 - 改进建议
-
有关更多信息以及如何避免问题的提示,请参阅 Cypher 手册 → Eager 运算符。在此特定情况下,查询可以重写为以下内容:
LOAD CSV FROM 'file:///ignore/ignore.csv' AS line CALL { WITH line MATCH (n:Person{name:line[0]}) DELETE n } RETURN line
动态属性
Neo4j 代码 |
|
标题 |
使用动态属性的查询不会对这些属性使用索引搜索或索引扫描。 |
描述 |
使用动态属性使得无法为此查询使用索引查找 ( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
信息:动态属性。标签/类型 |
分类 |
|
严重性级别 |
|
- 查询
-
MATCH (n:Person) WHERE n[$prop] IS NOT NULL RETURN n; - 返回的 GQLSTATUS 代码
-
03N95
- 返回的状态描述
-
信息:动态属性。标签/类型
Person上存在索引。无法将索引用于动态属性。请考虑使用静态属性。 - 改进建议
-
如果存在
(n:Person) ON (n.name)的索引,它将不会被上述查询使用,因为查询使用的是动态属性。因此,如果存在索引,最好使用常量值。例如,如果[$prop]等于name,则以下查询将能够使用索引:MATCH (n:Person) WHERE n.name IS NOT NULL RETURN n;
- 查询
-
MATCH (n:Person) WHERE n[$prop] IS NOT NULL RETURN n; - 返回代码描述
-
使用动态属性使得无法为此查询使用索引查找(索引标签为:
Person)。 - 改进建议
-
如果存在
(n:Person) ON (n.name)的索引,它将不会被上述查询使用,因为查询使用的是动态属性。因此,如果存在索引,最好使用常量值。例如,如果[$prop]等于name,则以下查询将能够使用索引:MATCH (n:Person) WHERE n.name IS NOT NULL RETURN n;
- 查询
-
MATCH ()-[r: KNOWS]->() WHERE r[$prop] IS NOT NULL RETURN r - 返回的 GQLSTATUS 代码
-
03N95
- 返回的状态描述
-
信息:动态属性。标签/类型
KNOWS上存在索引。无法将索引用于动态属性。请考虑使用静态属性。 - 改进建议
-
与动态节点属性类似,如果可能,请使用常量值,尤其是在关系属性上存在索引时。例如,如果
[$prop]等于since,您可以将查询重写为:MATCH ()-[r: KNOWS]->() WHERE r.since IS NOT NULL RETURN r
- 查询
-
MATCH ()-[r: KNOWS]->() WHERE r[$prop] IS NOT NULL RETURN r - 返回代码描述
-
使用动态属性使得无法为此查询使用索引查找(索引类型为:
KNOWS)。 - 改进建议
-
与动态节点属性类似,如果可能,请使用常量值,尤其是在关系属性上存在索引时。例如,如果
[$prop]等于since,您可以将查询重写为:MATCH ()-[r: KNOWS]->() WHERE r.since IS NOT NULL RETURN r
代码生成失败
当无法为查询生成代码(例如,查询太大)时,会创建 CodeGenerationFailed 通知。有关特定查询的更多信息,请参阅 debug.log 文件中的堆栈跟踪。
Neo4j 代码 |
|
标题 |
数据库无法为查询生成代码。可以在 debug.log 中找到堆栈跟踪。 |
描述 |
数据库无法为查询生成代码。可以在 debug.log 中找到堆栈跟踪。(方法太大) |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
信息:代码生成失败,无法生成代码,回退到解释型 |
分类 |
|
严重性级别 |
|
HINT(提示)通知
当 Cypher 计划程序或运行时无法创建满足指定提示(例如 JOIN 或 INDEX)的查询计划时,默认会返回 HINT 通知。可以通过将配置 dbms.cypher.hints_error 设置为 true 来更改 Cypher 计划程序或运行时的此行为。在这种情况下,查询将返回错误。
连接提示无法满足
Neo4j 代码 |
|
标题 |
数据库无法计划提示的连接。 |
描述 |
提示的连接未被计划。这可能是因为没有生成的计划包含连接键,请尝试使用不同的连接键或重构查询。( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:连接提示无法满足。无法创建带有 |
分类 |
|
严重性级别 |
|
JOIN 提示,但无法满足该提示- 查询
-
MATCH (a:A) WITH a, 1 AS horizon OPTIONAL MATCH (a)-[r]->(b:B) USING JOIN ON a OPTIONAL MATCH (a)--(c) RETURN * - 返回的 GQLSTATUS 代码
-
01N30
- 返回的状态描述
-
警告:连接提示无法满足。无法创建带有
JOIN ON a的计划。请尝试更改连接键或重构查询。 - 改进建议
-
无法应用
JOIN提示,因为其指定的变量位于OPTIONAL MATCH之前,因此已经被绑定。此查询的唯一选择要么是删除提示,要么修改查询以允许使用它。
- 查询
-
MATCH (a:A) WITH a, 1 AS horizon OPTIONAL MATCH (a)-[r]->(b:B) USING JOIN ON a OPTIONAL MATCH (a)--(c) RETURN * - 返回代码描述
-
提示的连接未被计划。这可能是因为没有生成的计划包含连接键,请尝试使用不同的连接键或重构查询。(提示连接键标识符为:
a) - 改进建议
-
无法应用
JOIN提示,因为其指定的变量位于OPTIONAL MATCH之前,因此已经被绑定。此查询的唯一选择要么是删除提示,要么修改查询以允许使用它。
提示的索引未找到
Neo4j 代码 |
|
标题 |
请求(直接或间接)引用了一个不存在的索引。 |
描述 |
提示的索引不存在,请检查模式( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:提示的索引未找到。无法创建带有 |
分类 |
|
严重性级别 |
|
- 查询
-
MATCH (a: Label) USING INDEX a:Label(id) WHERE a.id = 1 RETURN a - 返回的 GQLSTATUS 代码
-
01N31
- 返回的状态描述
-
警告:提示的索引未找到。无法创建带有
INDEX :Label(id)的计划,因为索引不存在。 - 改进建议
-
提示的索引不存在,请确保标签和属性拼写正确。如果拼写正确,请创建索引或从查询中删除提示。
- 查询
-
MATCH (a: Label) USING INDEX a:Label(id) WHERE a.id = 1 RETURN a - 返回代码描述
-
提示的索引不存在,请检查模式(索引为:INDEX FOR (
a:`Label`) ON (a.id)) - 改进建议
-
提示的索引不存在,请确保标签和属性拼写正确。如果拼写正确,请创建索引或从查询中删除提示。
- 查询
-
MATCH ()-[r:Rel]-() USING INDEX r:Rel(id) WHERE r.id = 1 RETURN r - 返回的 GQLSTATUS 代码
-
01N31
- 返回的状态描述
-
警告:提示的索引未找到。无法创建带有
INDEX :Rel(id)的计划,因为索引不存在。 - 改进建议
-
提示的索引不存在,请确保关系类型和属性拼写正确。如果拼写正确,请创建索引或从查询中删除提示。
- 查询
-
MATCH ()-[r:Rel]-() USING INDEX r:Rel(id) WHERE r.id = 1 RETURN r - 返回代码描述
-
提示的索引不存在,请检查模式(索引为:INDEX FOR ()-[
r:`Rel`]-() ON (r.id)) - 改进建议
-
提示的索引不存在,请确保关系类型和属性拼写正确。如果拼写正确,请创建索引或从查询中删除提示。
UNRECOGNIZED(无法识别)通知
当查询或命令提及系统未知的实体时,会返回无法识别的通知。
未找到主数据库
Neo4j 代码 |
|
标题 |
请求引用了一个不存在的主数据库。 |
描述 |
提供的主数据库目前在 DBMS 中不存在。此命令在创建此数据库之前不会生效。( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
注意:成功完成 - 未找到主数据库。数据库 |
分类 |
|
严重性级别 |
|
home 数据库设置为不存在的数据库- 查询
-
CREATE USER john SET PASSWORD "secret" SET HOME DATABASE nej4 - 返回的 GQLSTATUS 代码
-
00N50
- 返回的状态描述
-
注意:成功完成 - 未找到主数据库。数据库
ne4j不存在。请验证拼写是否正确或创建数据库以使命令生效。 - 改进建议
-
验证主数据库名称是否拼写无误。
- 查询
-
CREATE USER john SET PASSWORD "secret" SET HOME DATABASE nej4 - 返回代码描述
-
提供的主数据库目前在 DBMS 中不存在。此命令在创建此数据库之前不会生效。(主数据库:
nej4) - 改进建议
-
验证主数据库名称是否拼写无误。
未知标签
Neo4j 代码 |
|
标题 |
提供的标签在数据库中不存在。 |
描述 |
查询中的标签之一在数据库中不可用,请确保没有拼写错误,或者该标签在您在应用程序中运行此语句时是可用的( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
|
分类 |
|
严重性级别 |
|
- 查询
-
MATCH (n:Perso) RETURN n - 返回的 GQLSTATUS 代码
-
01N50
- 返回的状态描述
-
警告:未知标签。标签
Perso在数据库neo4j中不存在。请验证拼写是否正确。 - 改进建议
-
验证标签是否拼写无误。如果您计划将来创建带有该标签的节点,则无需更改。
- 查询
-
MATCH (n:Perso) RETURN n - 返回代码描述
-
查询中的标签之一在数据库中不可用,请确保没有拼写错误,或者该标签在您在应用程序中运行此语句时是可用的(丢失的标签名称是:
Perso) - 改进建议
-
验证标签是否拼写无误。如果您计划将来创建带有该标签的节点,则无需更改。
未知关系类型
Neo4j 代码 |
|
标题 |
提供的关系类型在数据库中不存在。 |
描述 |
查询中的关系类型之一在数据库中不可用,请确保没有拼写错误,或者该类型在您在应用程序中运行此语句时是可用的( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
|
分类 |
|
严重性级别 |
|
- 查询
-
MATCH (n)-[:NonExistingType]->() RETURN n - 返回的 GQLSTATUS 代码
-
01N51
- 返回的状态描述
-
警告:未知关系类型。关系类型
NonExistingType在数据库neo4j中不存在。请验证拼写是否正确。 - 改进建议
-
验证关系类型是否拼写无误。如果您计划将来创建此类型的关系,则无需更改。
- 查询
-
MATCH (n)-[:NonExistingType]->() RETURN n - 返回代码描述
-
查询中的关系类型之一在数据库中不可用,请确保没有拼写错误,或者该类型在您在应用程序中运行此语句时是可用的(丢失的关系类型是:
NonExistingType) - 改进建议
-
验证关系类型是否拼写无误。如果您计划将来创建此类型的关系,则无需更改。
未知属性键
Neo4j 代码 |
|
标题 |
提供的属性键在数据库中不存在 |
描述 |
查询中的属性名称之一在数据库中不可用,请确保没有拼写错误,或者该名称在您在应用程序中运行此语句时是可用的( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
|
分类 |
|
严重性级别 |
|
- 查询
-
MATCH (n:Person {nme:”Tom”}) RETURN n - 返回的 GQLSTATUS 代码
-
01N52
- 返回的状态描述
-
警告:未知属性键。属性
nme在数据库neo4j中不存在。请验证拼写是否正确。 - 改进建议
-
验证属性键是否拼写无误。如果您计划将来创建该属性键,则无需更改。
- 查询
-
MATCH (n:Person {nme:”Tom”}) RETURN n - 返回代码描述
-
查询中的属性名称之一在数据库中不可用,请确保没有拼写错误,或者该名称在您在应用程序中运行此语句时是可用的(丢失的属性名称是:
nme) - 改进建议
-
验证属性键是否拼写无误。如果您计划将来创建该属性键,则无需更改。
聚合跳过了 null 值
Neo4j 代码 |
|
标题 |
查询包含跳过 null 值的聚合函数。 |
描述 |
查询包含跳过 null 值的聚合函数。 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:集合函数中消除了 null 值。 |
分类 |
|
严重性级别 |
|
- 查询
-
UNWIND [1, NULL, 2] AS i RETURN count(i) AS sum - 返回的 GQLSTATUS 代码
-
01G11
- 返回的状态描述
-
警告:集合函数中消除了 null 值。
- 查询
UNWIND [1, NULL, 2] AS i RETURN count(i) AS sum
- 返回代码描述
-
查询包含跳过 null 值的聚合函数。
UNSUPPORTED(不支持)通知
不支持的通知包含有关在访问它们时使用的当前上下文中不支持的功能的信息。
不支持的值类型
Neo4j 代码 |
|
标题 |
客户端不支持此类型。 |
描述 |
此版本的客户端无法处理返回的一个或多个值,并已用占位符映射值替换它们。请升级您的客户端。 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:客户端不支持此类型。客户端不支持类型 |
分类 |
|
严重性级别 |
|
- 查询
-
RETURN VECTOR([1, 2, 3], 3, INTEGER32) - 返回的 GQLSTATUS 代码
-
01N83
- 返回的状态描述
-
警告:客户端不支持此类型。客户端不支持类型
VECTOR。请升级您的客户端。 - 改进建议
-
将您的客户端升级到支持此类型的版本。
- 查询
RETURN VECTOR([1, 2, 3], 3, INTEGER32)
- 返回代码描述
-
此版本的客户端无法处理返回的一个或多个值,并已用占位符映射值替换它们。请升级您的客户端。
- 改进建议
-
将您的客户端升级到支持此类型的版本。
DEPRECATION(弃用)通知
弃用通知包含有关已弃用的功能的信息。更改为新功能非常重要,否则查询可能会在未来版本中中断。
功能已弃用
Neo4j 代码 |
|
||||
标题 |
此功能已弃用,并将在未来版本中删除。 |
||||
描述 |
|
||||
类别 |
|
||||
GQLSTATUS 代码 |
|
||||
状态描述 |
警告:功能已弃用。 |
||||
分类 |
|
||||
严重性级别 |
|
- 查询
-
CYPHER 5 CREATE ALIAS `foo`.`bar` FOR DATABASE ... - 返回的 GQLSTATUS 代码
-
01N00
- 返回的状态描述
-
警告:功能已弃用。带有单独反引号引用名称部分的图引用(`foo`.`bar`)已弃用。在以后的 Cypher 版本中,请使用参数或反引号引用整个名称(`foo.bar`)。
- 改进建议
-
在较新的 Cypher 版本中,要么整个图引用名称都应使用反引号引用,要么应作为参数传入。
CYPHER 25 CREATE ALIAS `foo.bar` FOR DATABASE ...CYPHER 25 CREATE ALIAS $param FOR DATABASE ...有关图引用语义的更多信息,请参阅 Cypher 手册 → 图引用。
- 查询
-
CYPHER 5 CREATE ALIAS `foo`.`bar` FOR DATABASE ... - 返回代码描述
-
带有单独反引号引用名称部分的图引用(`foo`.`bar`)已弃用。在以后的 Cypher 版本中,请使用参数或反引号引用整个名称(`foo.bar`)。
- 改进建议
-
在较新的 Cypher 版本中,要么整个图引用名称都应使用反引号引用,要么应作为参数传入。
CYPHER 25 CREATE ALIAS `foo.bar` FOR DATABASE ...CYPHER 25 CREATE ALIAS $param FOR DATABASE ...有关图引用语义的更多信息,请参阅 Cypher 手册 → 图引用。
- 查询
-
CYPHER 5 USE graph.byName("`a.b`.c") ... - 返回的 GQLSTATUS 代码
-
01N00
- 返回的状态描述
-
警告:功能已弃用。带有单独反引号引用名称部分的图引用(`a.b`.`c`)已弃用。在以后的 Cypher 版本中,请删除反引号(a.b.c)。
- 改进建议
-
在较新的 Cypher 版本中,应删除反引号。
CYPHER 25 USE graph.byName("a.b.c") ...有关图引用语义的更多信息,请参阅 Cypher 手册 → 图引用。
- 查询
-
CYPHER 5 USE graph.byName("`a.b`.c") ... - 返回代码描述
-
带有单独反引号引用名称部分的图引用(`a.b`.`c`)已弃用。在以后的 Cypher 版本中,请删除反引号(a.b.c)。
- 改进建议
-
在较新的 Cypher 版本中,应删除反引号。
CYPHER 25 USE graph.byName("a.b.c") ...有关图引用语义的更多信息,请参阅 Cypher 手册 → 图引用。
- 查询
-
CREATE DATABASE foo.bar - 返回的 GQLSTATUS 代码
-
01N00
- 返回的状态描述
-
警告:功能已弃用。带有未转义
.的数据库和别名已弃用,除非点表示它们属于复合数据库。包含.的名称应转义。(名称:foo.bar) - 改进建议
-
如果不打算用于复合数据库,请使用
`字符转义名称。CREATE DATABASE `foo.bar`
- 查询
-
CREATE DATABASE foo.bar - 返回代码描述
-
带有未转义
.的数据库和别名已弃用,除非点表示它们属于复合数据库。包含.的名称应转义。(名称:foo.bar) - 改进建议
-
如果不打算用于复合数据库,请使用
`字符转义名称。CREATE DATABASE `foo.bar`
|
带有未转义 |
UNION 子句中使用排序不同的返回项- 查询
-
RETURN 'val' as one, 'val' as two UNION RETURN 'val' as two, 'val' as one - 返回的 GQLSTATUS 代码
-
01N00
- 返回的状态描述
-
警告:功能已弃用。UNION [ALL] 中的所有子查询对于返回列应具有相同的排序。在 UNION [ALL] 子句中使用排序不同的返回项已弃用,并将在未来版本中删除。
- 改进建议
-
在由
UNION子句组合的所有子查询中,对返回列使用相同的排序。RETURN 'val' as one, 'val' as two UNION RETURN 'val' as one, 'val' as two
- 查询
-
RETURN 'val' as one, 'val' as two UNION RETURN 'val' as two, 'val' as one - 返回代码描述
-
UNION [ALL] 中的所有子查询对于返回列应具有相同的排序。在 UNION [ALL] 子句中使用排序不同的返回项已弃用,并将在未来版本中删除。
- 改进建议
-
在由
UNION子句组合的所有子查询中,对返回列使用相同的排序。RETURN 'val' as one, 'val' as two UNION RETURN 'val' as one, 'val' as two
|
在版本 5.5 到 5.25 中,在 |
- 查询
-
RETURN 1 as my\u0085identifier - 返回的 GQLSTATUS 代码
-
01N00
- 返回的状态描述
-
警告:功能已弃用。Unicode 字符
\u0085对于未转义的标识符已弃用,将来将被视为空白字符。要继续使用它,请通过在标识符my\u0085identifier周围添加反引号来转义标识符。
- 查询
-
RETURN 1 as my\u0085identifier - 返回代码描述
-
Unicode 字符
\u0085对于未转义的标识符已弃用,将来将被视为空白字符。要继续使用它,请通过在标识符my\u0085identifier周围添加反引号来转义标识符。
- 查询
-
WITH 42 AS nbr CALL { WITH nbr RETURN nbr + 3 AS otherNbr } RETURN otherNbr - 返回的 GQLSTATUS 代码
-
01N00
- 返回的状态描述
-
警告:功能已弃用。
CALL子查询没有变量作用域子句已弃用。请使用CALL (nbr) {…} - 改进建议
-
用变量作用域子句替换导入的
WITH。WITH 42 AS nbr CALL (nbr) { RETURN nbr + 3 AS otherNbr } RETURN otherNbr
- 查询
-
WITH 42 AS nbr CALL { WITH nbr RETURN nbr + 3 AS otherNbr } RETURN otherNbr - 返回代码描述
-
CALL子查询没有变量作用域子句已弃用。请使用CALL (nbr) {…} - 改进建议
-
用变量作用域子句替换导入的
WITH。WITH 42 AS nbr CALL (nbr) { RETURN nbr + 3 AS otherNbr } RETURN otherNbr
- 查询
-
RETURN point.function() AS result - 返回的 GQLSTATUS 代码
-
01N00
- 返回的状态描述
-
警告:功能已弃用。用户定义函数
point.function使用的命名空间已弃用。 - 改进建议
-
将命名空间更改为非弃用的命名空间,例如
my.point.function或pointing.function。
- 查询
-
RETURN point.function() AS result - 返回代码描述
-
调用的用户定义函数的命名空间已弃用。(point.function)
- 查询
-
CALL point.procedure() AS result RETURN result - 返回的 GQLSTATUS 代码
-
01N00
- 返回的状态描述
-
警告:功能已弃用。用户定义过程
point.procedure使用的命名空间已弃用。 - 改进建议
-
将命名空间更改为非弃用的命名空间,例如
my.point.procedure或pointing.procedure。
- 查询
-
CALL point.procedure() AS result RETURN result - 返回代码描述
-
调用的用户定义过程的命名空间已弃用。(point.procedure)
- 查询
-
RETURN coll.flatten() AS result - 返回的 GQLSTATUS 代码
-
01N00
- 返回的状态描述
-
警告:功能已弃用。调用的用户定义函数
coll.flatten的命名空间已弃用,且该函数遮蔽了内部函数。 - 改进建议
-
将命名空间更改为非弃用的命名空间,例如
my.coll.flatten或collection.flatten。
- 查询
-
RETURN coll.flatten() AS result - 返回代码描述
-
调用的用户定义函数的命名空间已弃用,且该函数遮蔽了内部函数。(coll.flatten)
具有替代项的功能已弃用
Neo4j 代码 |
|
标题 |
此功能已弃用,并将在未来版本中删除。 |
描述 |
|
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
|
分类 |
|
严重性级别 |
|
|: 后的冒号- 查询
-
MATCH (a)-[:A|:B|:C]-() RETURN * - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
:A|:B|:C已弃用。它被:A|B|C取代。 - 改进建议
-
删除关系类型表达式内的冒号。
MATCH (a)-[:A|B|C]-() RETURN *
- 查询
-
MATCH (a)-[:A|:B|:C]-() RETURN * - 返回代码描述
-
在未来版本中,在分隔替代关系类型时使用冒号的语义将发生变化。(请改用 ':A|B|C')
- 改进建议
-
删除关系类型表达式内的冒号。
MATCH (a)-[:A|B|C]-() RETURN *
- 查询
-
CYPHER 5 MATCH (a)-[]-(b) SET a = b - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
SET a = b已弃用。它被SET a = properties(b)取代。 - 改进建议
-
使用
properties()函数获取b中的所有属性。CYPHER 5 MATCH (a)-[]-(b) SET a = properties(b)
- 查询
-
MATCH (a)-[]-(b) SET a = b - 返回代码描述
-
使用节点或关系设置属性已弃用,并将在未来版本中删除。请改用
properties()。 - 改进建议
-
使用
properties()函数获取b中的所有属性。MATCH (a)-[]-(b) SET a = properties(b)
- 查询
-
CYPHER 5 MATCH (a)-[r]-(b) SET a += r - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
SET a += r已弃用。它被SET a += properties(r)取代。 - 改进建议
-
使用
properties()函数获取r中的所有属性。CYPHER 5 MATCH (a)-[r]-(b) SET a += properties(r)
- 查询
-
MATCH (a)-[r]-(b) SET a += r - 返回代码描述
-
使用节点或关系设置属性已弃用,并将在未来版本中删除。请改用
properties()。 - 改进建议
-
使用
properties()函数获取r中的所有属性。MATCH (a)-[r]-(b) SET a += properties(r)
- 查询
-
MATCH (a:Start), shortestPath((a)-[r]->()) RETURN a - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
shortestPath((a)-[r]→())已弃用。它被shortestPath((n)-[r*1..1]→(m))取代。 - 改进建议
-
如果关系长度是固定的,则没有理由搜索最短路径。相反,您可以将其重写为以下内容:
MATCH (a: Start)-[r]->(b: End) RETURN b LIMIT 1
- 查询
-
MATCH (a:Start), shortestPath((a)-[r]->()) RETURN a - 返回代码描述
-
将
shortestPath和allShortestPaths与固定长度关系一起使用已弃用,并将在未来版本中删除。请改用长度为1 [r*1..1]的路径或带limit的Match代替。 - 改进建议
-
如果关系长度是固定的,则没有理由搜索最短路径。相反,您可以将其重写为以下内容:
MATCH (a: Start)-[r]->(b: End) RETURN b LIMIT 1
- 查询
-
CYPHER runtime = interpreted MATCH (n) RETURN n - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
runtime=interpreted已弃用。它被runtime=slotted取代。 - 改进建议
-
运行时
interpreted已弃用,且使用了另一个运行时。或者,您可以删除运行时选项以使用默认运行时。MATCH (n) RETURN n
- 查询
-
CYPHER runtime = interpreted MATCH (n) RETURN n - 返回代码描述
-
查询使用了已弃用的运行时选项。(
'runtime=interpreted'已弃用,请改用'runtime=slotted') - 改进建议
-
运行时
interpreted已弃用,且使用了另一个运行时。或者,您可以删除运行时选项以使用默认运行时。MATCH (n) RETURN n
text-1.0 索引提供程序- 查询
-
CREATE TEXT INDEX FOR (n:Label) ON (n.prop) OPTIONS {indexProvider : 'text-1.0'} - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
text-1.0已弃用。它被text-2.0取代。 - 改进建议
-
使用值
text-2.0更新选项indexProvider。CREATE TEXT INDEX FOR (n:Label) ON (n.prop) OPTIONS {indexProvider : 'text-2.0'}
- 查询
-
CREATE TEXT INDEX FOR (n:Label) ON (n.prop) OPTIONS {indexProvider : 'text-1.0'} - 返回代码描述
-
用于文本索引的
text-1.0提供程序已弃用,并将在未来版本中删除。请改用text-2.0。 - 改进建议
-
使用值
text-2.0更新选项indexProvider。CREATE TEXT INDEX FOR (n:Label) ON (n.prop) OPTIONS {indexProvider : 'text-2.0'}
CALL cdc.query()
- 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
cdc.query已弃用。它被db.cdc.query取代。 - 改进建议
-
请改用过程
db.cdc.query。CALL db.cdc.query()
- 查询
-
CALL cdc.query() - 返回代码描述
-
查询使用了已弃用的过程:
cdc.query。 - 改进建议
-
请改用过程
db.cdc.query。CALL db.cdc.query()
- 查询
-
MATCH (a) RETURN id(a) - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。id 已弃用。它被 elementId 取代,或者考虑使用应用程序生成的 id。
- 改进建议
-
请改用函数
elementId()。MATCH (a) RETURN elementId(a)
- 查询
-
MATCH (a) RETURN id(a) - 返回代码描述
-
查询使用了已弃用的函数:
id。 - 改进建议
-
请改用函数
elementId()。MATCH (a) RETURN elementId(a)
- 查询
-
MATCH (where {p: 5}) RETURN where - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
(where {p: 5})已弃用。它被(`where` {p: 5})取代。 - 改进建议
-
要继续使用此名称的变量,请使用反引号转义变量名。
MATCH (`where` {p: 5}) RETURN `where`.p
- 查询
-
MATCH (where {p: 5}) RETURN where - 返回代码描述
-
'(where {p: 5})' 已弃用。它被 '(`where` {p: 5})' 取代。
- 改进建议
-
要继续使用此名称的变量,请使用反引号转义变量名。
MATCH (`where` {p: 5}) RETURN `where`.p
- 查询
-
MATCH ()-[where {p: 5}]->() RETURN where - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
-[where {p: 5}]-已弃用。它被-[`where` {p: 5}]-取代。 - 改进建议
-
要继续使用此名称的变量,请使用反引号转义变量名。
MATCH ()-[`where` {p: 5}]->() RETURN `where`.p
- 查询
-
MATCH ()-[where {p: 5}]->() RETURN where - 返回代码描述
-
'-[where {p: 5}]-' 已弃用。它被 '-[`where` {p: 5}]-' 取代。
- 改进建议
-
要继续使用此名称的变量,请使用反引号转义变量名。
MATCH ()-[`where` {p: 5}]->() RETURN `where`.p
+ 的右侧操作数- 查询
-
MATCH (n)-[r]->(m) WITH m, n.truthCodes AS listOfBooleans RETURN listOfBooleans + m:A - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
… + m:A已弃用。它被… + (m:A)取代。 - 改进建议
-
在
+的右侧括号括起标签表达式谓词。MATCH (n)-[r]->(m) WITH m, n.truthCodes AS listOfBooleans RETURN listOfBooleans + (m:A)
- 查询
-
MATCH (n)-[r]->(m) WITH m, n.truthCodes AS listOfBooleans RETURN listOfBooleans + m:A - 返回代码描述
-
'… + m:A' 已弃用。它被 '… + (m:A)' 取代。
- 改进建议
-
在
+的右侧括号括起标签表达式谓词。MATCH (n)-[r]->(m) WITH m, n.truthCodes AS listOfBooleans RETURN listOfBooleans + (m:A)
+ 的右侧操作数- 查询
-
MATCH (n)-[r]->(m) WITH r, n.truthCodes AS listOfBooleans RETURN listOfBooleans + r:C|D - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
… + r:C|D已弃用。它被… + (r:C|D)取代。 - 改进建议
-
在
+的右侧括号括起标签表达式谓词。MATCH (n)-[r]->(m) WITH r, n.truthCodes AS listOfBooleans RETURN listOfBooleans + (r:C|D)
- 查询
-
MATCH (n)-[r]->(m) WITH r, n.truthCodes AS listOfBooleans RETURN listOfBooleans + r:C|D - 返回代码描述
-
'… + r:C|D' 已弃用。它被 '… + (r:C|D)' 取代。
- 改进建议
-
在
+的右侧括号括起标签表达式谓词。MATCH (n)-[r]->(m) WITH r, n.truthCodes AS listOfBooleans RETURN listOfBooleans + (r:C|D)
CASE 表达式中将名为 is 的未转义变量用作 WHEN 操作数- 查询
-
MATCH (n) WITH n, n.internationalStandard AS is RETURN CASE n WHEN is :: INTEGER THEN "ISO/IEC" + is ELSE is END AS standardsName - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
WHEN is :: INTEGER已弃用。它被WHEN `is` :: INTEGER取代。 - 改进建议
-
要继续在简单
CASE表达式中使用此名称的变量,请使用反引号转义变量名。MATCH (n) WITH n, n.internationalStandard AS `is` RETURN CASE n WHEN `is` :: INTEGER THEN "ISO/IEC" + `is` ELSE `is` END AS standardsName
- 查询
-
MATCH (n) WITH n, n.internationalStandard AS is RETURN CASE n WHEN is :: INTEGER THEN "ISO/IEC" + is ELSE is END AS standardsName - 返回代码描述
- 'WHEN is
-
INTEGER' 已弃用。它被 'WHEN `is` :: INTEGER' 取代。
- 改进建议
-
要继续在简单
CASE表达式中使用此名称的变量,请使用反引号转义变量名。MATCH (n) WITH n, n.internationalStandard AS `is` RETURN CASE n WHEN `is` :: INTEGER THEN "ISO/IEC" + `is` ELSE `is` END AS standardsName
CASE 表达式的 WHEN 操作数中,在加法运算中使用名为 contains 的未转义变量- 查询
-
MATCH p = (:A)-[:HAS]->(:B) WITH p, size(relationships(p)) AS contains RETURN CASE size(nodes(p)) WHEN contains + 1 THEN "okay" ELSE "not okay" END AS check - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
WHEN contains + 1 INTEGER已弃用。它被WHEN `contains` + 1 INTEGER取代。 - 改进建议
-
要继续在简单
CASE表达式中使用此名称的变量,请使用反引号转义变量名。MATCH p = (:A)-[:HAS]->(:B) WITH p, size(relationships(p)) AS `contains` RETURN CASE size(nodes(p)) WHEN `contains` + 1 THEN "okay" ELSE "not okay" END AS check
- 查询
-
MATCH p = (:A)-[:HAS]->(:B) WITH p, size(relationships(p)) AS contains RETURN CASE size(nodes(p)) WHEN contains + 1 THEN "okay" ELSE "not okay" END AS check - 返回代码描述
-
'WHEN contains + 1 INTEGER' 已弃用。它被 'WHEN `contains` + 1 INTEGER' 取代。
- 改进建议
-
要继续在简单
CASE表达式中使用此名称的变量,请使用反引号转义变量名。MATCH p = (:A)-[:HAS]->(:B) WITH p, size(relationships(p)) AS `contains` RETURN CASE size(nodes(p)) WHEN `contains` + 1 THEN "okay" ELSE "not okay" END AS check
CASE 表达式的 WHEN 操作数中,在减法运算中使用名为 contains 的未转义变量- 查询
-
MATCH p = (:A)-[:HAS]->(:B) WITH p, size(nodes(p)) AS contains RETURN CASE size(relationships(p)) WHEN contains - 1 THEN "okay" ELSE "not okay" END AS check - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
WHEN contains - 1 INTEGER已弃用。它被WHEN `contains` - 1 INTEGER取代。 - 改进建议
-
要继续在简单
CASE表达式中使用此名称的变量,请使用反引号转义变量名。MATCH p = (:A)-[:HAS]->(:B) WITH p, size(nodes(p)) AS `contains` RETURN CASE size(relationships(p)) WHEN `contains` - 1 THEN "okay" ELSE "not okay" END AS check
- 查询
-
MATCH p = (:A)-[:HAS]->(:B) WITH p, size(nodes(p)) AS contains RETURN CASE size(relationships(p)) WHEN contains - 1 THEN "okay" ELSE "not okay" END AS check - 返回代码描述
-
'WHEN contains - 1 INTEGER' 已弃用。它被 'WHEN `contains` - 1 INTEGER' 取代。
- 改进建议
-
要继续在简单
CASE表达式中使用此名称的变量,请使用反引号转义变量名。MATCH p = (:A)-[:HAS]->(:B) WITH p, size(nodes(p)) AS `contains` RETURN CASE size(relationships(p)) WHEN `contains` - 1 THEN "okay" ELSE "not okay" END AS check
CASE 表达式的 WHEN 操作数中,对名为 in 的未转义变量使用 [] 运算符- 查询
-
MATCH (c:Client)-[:MAKES]->(t:Transaction) WITH t, c.ibanNumbers AS in RETURN CASE t.ibanNumber WHEN in[0] THEN "used main account" ELSE "used different account" END AS check - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
WHEN in[0] INTEGER已弃用。它被WHEN `in`[0] INTEGER取代。 - 改进建议
-
要继续在简单
CASE表达式中使用此名称的变量,请使用反引号转义变量名。MATCH (c:Client)-[:MAKES]->(t:Transaction) WITH t, c.ibanNumbers AS `in` RETURN CASE t.ibanNumber WHEN `in`[0] THEN "used main account" ELSE "used different account" END AS check
- 查询
-
MATCH (c:Client)-[:MAKES]->(t:Transaction) WITH t, c.ibanNumbers AS in RETURN CASE t.ibanNumber WHEN in[0] THEN "used main account" ELSE "used different account" END AS check - 返回代码描述
-
'WHEN in[0] INTEGER' 已弃用。它被 'WHEN `in`[0] INTEGER' 取代。
- 改进建议
-
要继续在简单
CASE表达式中使用此名称的变量,请使用反引号转义变量名。MATCH (c:Client)-[:MAKES]->(t:Transaction) WITH t, c.ibanNumbers AS `in` RETURN CASE t.ibanNumber WHEN `in`[0] THEN "used main account" ELSE "used different account" END AS check
CASE 表达式的 WHEN 操作数中,对名为 in 的未转义变量使用 [] 运算符- 查询
-
MATCH (in:Client)-[:MAKES]->(t:Transaction) RETURN CASE t.ibanNumber WHEN in["mainAccount"] THEN "used main account" ELSE "used different account" END AS check - 返回的 GQLSTATUS 代码
-
01N01
- 返回的状态描述
-
警告:具有替代项的功能已弃用。
WHEN in["mainAccount"] INTEGER已弃用。它被WHEN `in`["mainAccount"] INTEGER取代。 - 改进建议
-
要继续在简单
CASE表达式中使用此名称的变量,请使用反引号转义变量名。MATCH (in:Client)-[:MAKES]->(t:Transaction) RETURN CASE t.ibanNumber WHEN `in`["mainAccount"] THEN "used main account" ELSE "used different account" END AS check
- 查询
-
MATCH (in:Client)-[:MAKES]->(t:Transaction) RETURN CASE t.ibanNumber WHEN in["mainAccount"] THEN "used main account" ELSE "used different account" END AS check - 返回代码描述
-
'WHEN in["mainAccount"] INTEGER' 已弃用。它被 'WHEN `in`["mainAccount"] INTEGER' 取代。
- 改进建议
-
要继续在简单
CASE表达式中使用此名称的变量,请使用反引号转义变量名。MATCH (in:Client)-[:MAKES]->(t:Transaction) RETURN CASE t.ibanNumber WHEN `in`["mainAccount"] THEN "used main account" ELSE "used different account" END AS check
没有未来替代项的已弃用功能
Neo4j 代码 |
|
标题 |
此功能已弃用,并将在未来版本中删除。 |
描述 |
|
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:没有替代项的功能已弃用。 |
分类 |
|
严重性级别 |
|
connectComponentsPlanner- 查询
-
CYPHER connectComponentsPlanner=greedy MATCH (a), (b) RETURN * - 返回的 GQLSTATUS 代码
-
01N02
- 返回的状态描述
-
警告:没有替代项的功能已弃用。
connectComponentsPlanner已弃用,并将删除,且不提供替代项。
- 查询
-
CYPHER connectComponentsPlanner=greedy MATCH (a), (b) RETURN * - 返回代码描述
-
Cypher 查询选项
connectComponentsPlanner已弃用,并将删除,且不提供替代项。产品在组合子计划时使用基于成本的 IDP 搜索算法的默认行为将保留。有关更多信息,请参阅 Cypher 手册 → Cypher 计划程序。
- 查询
-
CALL unsupported.dbms.shutdown() - 返回的 GQLSTATUS 代码
-
01N02
- 返回的状态描述
-
警告:没有替代项的功能已弃用。
unsupported.dbms.shutdown已弃用,并将删除,且不提供替代项。 - 改进建议
-
删除对已弃用过程的使用。如果存在建议的替代项,请更新为使用该替代项。
- 查询
-
CALL unsupported.dbms.shutdown() - 返回代码描述
-
查询使用了已弃用的过程:
'unsupported.dbms.shutdown'。 - 改进建议
-
删除对已弃用过程的使用。如果存在建议的替代项,请更新为使用该替代项。
过程字段已弃用
Neo4j 代码 |
|
标题 |
此功能已弃用,并将在未来版本中删除。 |
描述 |
查询使用了来自过程的已弃用字段。( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:过程字段已弃用。过程 |
分类 |
|
严重性级别 |
|
SECURITY(安全)通知
安全通知表明查询或命令的结果可能存在潜在的安全问题。请验证这是否是您查询或命令的预期行为。
角色或权限未分配
Neo4j 代码 |
|
标题 |
|
描述 |
|
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
注意:成功完成 - 角色或权限未分配。命令 |
分类 |
|
严重性级别 |
|
*<command> 和 cmd 可以是用户给出的完整命令,也可以是给出命令的子集。
- 命令
-
REVOKE ROLE admin, reader FROM jane - 返回的 GQLSTATUS 代码
-
00N71
- 返回的状态描述
-
注意:成功完成 - 角色或权限未分配。
REVOKE ROLE reader FROM jane无效。未分配角色或权限。 - 改进建议
-
验证这是否是预期的角色和用户。
- 命令
-
REVOKE ROLE admin, reader FROM jane - 返回代码的标题
-
REVOKE ROLE reader FROM jane无效。 - 返回代码描述
-
用户没有该角色。有关更多信息,请参阅状态码文档。
- 改进建议
-
验证这是否是预期的角色和用户。
- 命令
-
REVOKE ROLE admin, reader FROM AUTH RULE authrule - 返回的 GQLSTATUS 代码
-
00N71
- 返回的状态描述
-
注意:成功完成 - 角色或权限未分配。
REVOKE ROLE reader FROM AUTH RULE authrule无效。未分配角色或权限。 - 改进建议
-
验证这是否是预期的角色和授权规则。
- 命令
-
REVOKE ROLE admin, reader FROM AUTH RULE authrule - 返回代码的标题
-
REVOKE ROLE reader FROM AUTH RULE authrule无效。 - 返回代码描述
-
授权规则没有该角色。有关更多信息,请参阅状态码文档。
- 改进建议
-
验证这是否是预期的角色和授权规则。
- 命令
-
REVOKE WRITE ON GRAPH * FROM reader - 返回的 GQLSTATUS 代码
-
00N71
- 返回的状态描述
-
注意:成功完成 - 角色或权限未分配。
REVOKE DENY WRITE ON GRAPH * FROM reader无效。未分配角色或权限。 - 改进建议
-
验证这是否是预期的权限和角色。
- 命令
-
REVOKE WRITE ON GRAPH * FROM reader - 返回代码的标题
-
REVOKE DENY WRITE ON GRAPH * FROM reader无效。 - 返回代码描述
-
该角色没有该权限。有关更多信息,请参阅状态码文档。
- 改进建议
-
验证这是否是预期的权限和角色。
角色或权限已分配
Neo4j 代码 |
|
标题 |
|
描述 |
|
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
注意:成功完成 - 角色或权限已分配。命令 |
分类 |
|
严重性级别 |
|
*<command> 和 cmd 可以是用户给出的完整命令,也可以是给出命令的子集。
- 命令
-
GRANT ROLE admin TO john - 返回的 GQLSTATUS 代码
-
00N70
- 返回的状态描述
-
注意:成功完成 - 角色或权限已分配。
GRANT ROLE admin TO john无效。已分配角色或权限。 - 改进建议
-
验证这是否是预期的角色和用户。
- 命令
-
GRANT ROLE admin TO john - 返回代码的标题
-
GRANT ROLE admin TO john无效。 - 返回代码描述
-
用户已拥有该角色。有关更多信息,请参阅状态码文档。
- 改进建议
-
验证这是否是预期的角色和用户。
- 命令
-
GRANT ROLE admin TO AUTH RULE authrule - 返回的 GQLSTATUS 代码
-
00N70
- 返回的状态描述
-
注意:成功完成 - 角色或权限已分配。
GRANT ROLE admin TO AUTH RULE authrule无效。已分配角色或权限。 - 改进建议
-
验证这是否是预期的角色和授权规则。
- 命令
-
GRANT ROLE admin TO AUTH RULE authrule - 返回代码的标题
-
GRANT ROLE admin TO AUTH RULE authrule无效。 - 返回代码描述
-
授权规则已拥有该角色。有关更多信息,请参阅状态码文档。
- 改进建议
-
验证这是否是预期的角色和授权规则。
- 命令
-
GRANT TRAVERSE ON GRAPH * TO reader - 返回的 GQLSTATUS 代码
-
00N70
- 返回的状态描述
-
注意:成功完成 - 角色或权限已分配。
GRANT TRAVERSE ON GRAPH * TO reader无效。已分配角色或权限。 - 改进建议
-
验证这是否是预期的权限和角色。
- 命令
-
GRANT TRAVERSE ON GRAPH * TO reader - 返回代码的标题
-
GRANT TRAVERSE ON GRAPH * NODE * TO reader无效。 - 返回代码描述
-
该角色已拥有该权限。有关更多信息,请参阅状态码文档。
- 改进建议
-
验证这是否是预期的权限和角色。
不可能的撤销命令
Neo4j 代码 |
|
标题 |
|
描述 |
角色不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。有关更多信息,请参阅状态码文档。 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
|
分类 |
|
严重性级别 |
|
*<command> 和 cmd 可以是用户给出的完整命令,也可以是给出命令的子集。
- 命令
-
REVOKE ROLE manager, reader FROM jane - 返回的 GQLSTATUS 代码
-
01N70
- 返回的状态描述
-
警告:不可能的撤销命令。
REVOKE ROLE manager FROM jane无效。角色不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。 - 改进建议
-
验证这是否是预期的角色且拼写正确。
- 命令
-
REVOKE ROLE manager, reader FROM jane - 返回代码的标题
-
REVOKE ROLE manager FROM jane无效。 - 返回代码描述
-
角色不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。有关更多信息,请参阅状态码文档。
- 改进建议
-
验证这是否是预期的角色且拼写正确。
- 命令
-
REVOKE ROLE reader FROM alice - 返回的 GQLSTATUS 代码
-
01N70
- 返回的状态描述
-
警告:不可能的撤销命令。
REVOKE ROLE reader FROM alice无效。用户不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。有关更多信息,请参阅状态码文档。 o - 改进建议
-
验证这是否是预期的用户且拼写正确。
- 命令
-
REVOKE ROLE reader FROM alice - 返回代码的标题
-
REVOKE ROLE reader FROM alice无效。 - 返回代码描述
-
用户不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。
- 改进建议
-
验证这是否是预期的用户且拼写正确。
- 命令
-
REVOKE GRANT WRITE ON GRAPH * FROM manager - 返回的 GQLSTATUS 代码
-
01N70
- 返回的状态描述
-
警告:不可能的撤销命令。
REVOKE GRANT WRITE ON GRAPH * FROM manager无效。角色不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。 - 改进建议
-
验证这是否是预期的角色且拼写正确。
- 命令
-
REVOKE GRANT WRITE ON GRAPH * FROM manager - 返回代码的标题
-
REVOKE GRANT WRITE ON GRAPH * FROM manager无效。 - 返回代码描述
-
角色不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。有关更多信息,请参阅状态码文档。
- 改进建议
-
验证这是否是预期的角色且拼写正确。
- 命令
-
REVOKE GRANT WRITE ON GRAPH neo3j FROM editor - 返回的 GQLSTATUS 代码
-
01N70
- 返回的状态描述
-
警告:不可能的撤销命令。
REVOKE GRANT WRITE ON GRAPH neo3j FROM editor无效。数据库neo3j不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。 - 改进建议
-
验证这是否是预期的图且拼写正确。
- 命令
-
REVOKE GRANT WRITE ON GRAPH neo3j FROM editor - 返回代码的标题
-
REVOKE GRANT WRITE ON GRAPH neo3j FROM editor无效。 - 返回代码描述
-
数据库
neo3j不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。有关更多信息,请参阅状态码文档。 - 改进建议
-
验证这是否是预期的图且拼写正确。
- 命令
-
REVOKE GRANT ACCESS ON DATABASE neo3j FROM editor - 返回的 GQLSTATUS 代码
-
01N70
- 返回的状态描述
-
警告:不可能的撤销命令。
REVOKE GRANT ACCESS ON DATABASE neo3j FROM editor无效。数据库neo3j不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。 - 改进建议
-
验证这是否是预期的数据库且拼写正确。
- 命令
-
REVOKE GRANT ACCESS ON DATABASE neo3j FROM editor - 返回代码的标题
-
REVOKE GRANT ACCESS ON DATABASE neo3j FROM editor无效。 - 返回代码描述
-
数据库
neo3j不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。有关更多信息,请参阅状态码文档。 - 改进建议
-
验证这是否是预期的数据库且拼写正确。
- 参数
-
{ "graph": "*" } - 命令
-
REVOKE GRANT CREATE ON GRAPH $graph FROM PUBLIC - 返回的 GQLSTATUS 代码
-
01N70
- 返回的状态描述
-
警告:不可能的撤销命令。
REVOKE GRANT CREATE ON GRAPH $graph FROM PUBLIC无效。数据库*不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。 - 改进建议
-
使用不带参数的
GRAPH *来撤销所有图上的权限。
- 参数
-
{ "graph": "*" } - 命令
-
REVOKE GRANT CREATE ON GRAPH $graph FROM PUBLIC - 返回代码的标题
-
REVOKE GRANT CREATE ON GRAPH $graph FROM PUBLIC无效。 - 返回代码描述
-
参数化数据库和图名称不支持通配符。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。有关更多信息,请参阅状态码文档。
- 改进建议
-
使用不带参数的
GRAPH *来撤销所有图上的权限。
- 参数
-
{ "database": "*" } - 命令
-
REVOKE GRANT ACCESS ON DATABASE $database FROM PUBLIC - 返回的 GQLSTATUS 代码
-
01N70
- 返回的状态描述
-
警告:不可能的撤销命令。
REVOKE GRANT ACCESS ON DATABASE $database FROM PUBLIC无效。数据库*不存在。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。 - 改进建议
-
使用不带参数的
DATABASE *来撤销所有数据库上的权限。
- 参数
-
{ "database": "*" } - 命令
-
REVOKE GRANT ACCESS ON DATABASE $database FROM PUBLIC - 返回代码的标题
-
REVOKE GRANT ACCESS ON DATABASE $database FROM PUBLIC无效。 - 返回代码描述
-
参数化数据库和图名称不支持通配符。请确保没有拼写错误。此通知在未来的主要版本中将变为错误。有关更多信息,请参阅状态码文档。
- 改进建议
-
使用不带参数的
DATABASE *来撤销所有数据库上的权限。
未定义授权提供程序
Neo4j 代码 |
|
标题 |
未定义授权提供程序。 |
描述 |
配置中未定义授权提供程序 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
注意:成功完成 - 未定义授权提供程序。配置中未定义授权提供程序 |
分类 |
|
严重性级别 |
|
- 命令
-
CREATE USER foo SET AUTH 'unknownProvider' { SET ID 'idString' } - 返回的 GQLSTATUS 代码
-
00N72
- 返回的状态描述
-
注意:成功完成 - 未定义授权提供程序。配置中未定义授权提供程序
unknownProvider。验证拼写是否正确或在配置中定义unknownProvider。 - 改进建议
-
确保给定的提供程序正确,如果不是,请替换它。如果它是正确的,请确保将其添加为
dbms.security.authentication_providers和dbms.security.authorization_providers中已知授权提供程序。
- 命令
-
CREATE USER foo SET AUTH 'unknownProvider' { SET ID 'idString' } - 返回代码描述
-
配置中未定义授权提供程序
unknownProvider。验证拼写是否正确或在配置中定义unknownProvider。 - 改进建议
-
确保给定的提供程序正确,如果不是,请替换它。如果它是正确的,请确保将其添加为
dbms.security.authentication_providers和dbms.security.authorization_providers中已知授权提供程序。
- 命令
-
ALTER USER foo SET AUTH 'unknownProvider' { SET ID 'idString' } - 返回的 GQLSTATUS 代码
-
00N72
- 返回的状态描述
-
注意:成功完成 - 未定义授权提供程序。配置中未定义授权提供程序
unknownProvider。验证拼写是否正确或在配置中定义unknownProvider。 - 改进建议
-
确保给定的提供程序正确,如果不是,请替换它。如果它是正确的,请确保将其添加为
dbms.security.authentication_providers和dbms.security.authorization_providers中已知授权提供程序。
- 命令
-
ALTER USER foo SET AUTH 'unknownProvider' { SET ID 'idString' } - 返回代码描述
-
配置中未定义授权提供程序
unknownProvider。验证拼写是否正确或在配置中定义unknownProvider。 - 改进建议
-
确保给定的提供程序正确,如果不是,请替换它。如果它是正确的,请确保将其添加为
dbms.security.authentication_providers和dbms.security.authorization_providers中已知授权提供程序。
未启用用户的外部授权
Neo4j 代码 |
|
标题 |
未启用用户的外部授权。 |
描述 |
使用设置 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:外部授权已禁用。使用设置 |
分类 |
|
严重性级别 |
|
- 命令
-
CREATE USER foo SET AUTH 'exampleProvider' { SET ID 'idString' } - 返回的 GQLSTATUS 代码
-
01N71
- 返回的状态描述
-
警告:外部授权已禁用。使用设置 'dbms.security.require_local_user' 来启用外部授权。
- 改进建议
-
通过
dbms.security.require_local_user设置启用链接用户。在启用之前,新的外部授权将被忽略,现有的外部授权行为将继续适用。
- 命令
-
CREATE USER foo SET AUTH 'exampleProvider' { SET ID 'idString' } - 改进建议
-
通过
dbms.security.require_local_user设置启用链接用户。在启用之前,新的外部授权将被忽略,现有的外部授权行为将继续适用。
- 命令
-
ALTER USER foo SET AUTH 'exampleProvider' { SET ID 'idString' } - 返回的 GQLSTATUS 代码
-
01N71
- 返回的状态描述
-
警告:外部授权已禁用。使用设置 'dbms.security.require_local_user' 来启用外部授权。
- 改进建议
-
通过
dbms.security.require_local_user设置启用链接用户。在启用之前,新的外部授权将被忽略,现有的外部授权行为将继续适用。
- 命令
-
ALTER USER foo SET AUTH 'exampleProvider' { SET ID 'idString' } - 改进建议
-
通过
dbms.security.require_local_user设置启用链接用户。在启用之前,新的外部授权将被忽略,现有的外部授权行为将继续适用。
查询使用不安全的协议
Neo4j 代码 |
|
标题 |
查询使用不安全的协议 |
描述 |
查询使用不安全的协议。请考虑改用 'https'。 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:不安全的 URL 协议。查询使用不安全的协议。请考虑改用 'https'。 |
分类 |
|
严重性级别 |
|
未启用 OIDC 凭据转发
Neo4j 代码 |
|
标题 |
未启用 OIDC 凭据转发。 |
描述 |
使用设置 'dbms.security.allow_oidc_credential_forwarding_enabled' 来启用 OIDC 凭据转发。 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:OIDC 凭据转发已禁用。使用设置 |
分类 |
|
严重性级别 |
|
- 命令
-
CREATE ALIAS `remote-neo4j` FOR DATABASE `neo4j` AT "neo4j+s://location:7687" OIDC CREDENTIAL FORWARDING - 返回的 GQLSTATUS 代码
-
01N74
- 返回的状态描述
-
警告:OIDC 凭据转发已禁用。使用设置 'dbms.security.allow_oidc_credential_forwarding_enabled' 来启用 OIDC 凭据转发。
- 改进建议
-
远程数据库别名已成功创建,但未启用 OIDC 凭据转发。要使用该别名连接到远程 Neo4j DBMS,请将
dbms.security.allow_oidc_credential_forwarding_enabled设置为true以允许 OIDC 凭据转发。
- 命令
-
CREATE ALIAS `remote-neo4j` FOR DATABASE `neo4j` AT "neo4j+s://location:7687" OIDC CREDENTIAL FORWARDING - 改进建议
-
远程数据库别名已成功创建,但未启用 OIDC 凭据转发。要使用该别名连接到远程 Neo4j DBMS,请将
dbms.security.allow_oidc_credential_forwarding_enabled设置为true以允许 OIDC 凭据转发。
分片权限性能
Neo4j 代码 |
|
标题 |
对分片数据库具有严重性能影响的权限。 |
描述 |
指定的权限严重降低了在分片数据库上运行的查询的性能。请考虑暂时排除分片数据库。 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:分片权限性能。指定的权限严重降低了在分片数据库上运行的查询的性能。请考虑暂时排除分片数据库。 |
分类 |
|
严重性级别 |
|
- 命令
-
GRANT TRAVERSE ON GRAPH * TO ROLE exampleRole - 返回的 GQLSTATUS 代码
-
01N73
- 返回的状态描述
-
警告:分片权限性能。指定的权限严重降低了在分片数据库上运行的查询的性能。请考虑暂时排除分片数据库。
- 改进建议
-
显式地将权限授予数据库,而不是授予所有数据库。
- 命令
-
GRANT TRAVERSE ON GRAPH * TO ROLE exampleRole - 改进建议
-
显式地将权限授予数据库,而不是授予所有数据库。
TOPOLOGY(拓扑)通知
拓扑通知提供与管理数据库和服务器相关的附加信息。
服务器已启用
Neo4j 代码 |
|
标题 |
|
描述 |
服务器 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
注意:成功完成 - 服务器已启用。命令 |
分类 |
|
严重性级别 |
|
- 命令
-
ENABLE SERVER "123e4567-e89b-12d3-a456-426614174000" - 返回的 GQLSTATUS 代码
-
00N80
- 返回的状态描述
-
注意:成功完成 - 服务器已启用。
ENABLE SERVER无效。服务器123e4567-e89b-12d3-a456-426614174000已启用。验证这是否是预期的服务器。
- 命令
-
ENABLE SERVER "123e4567-e89b-12d3-a456-426614174000" - 返回代码描述
-
服务器
123e4567-e89b-12d3-a456-426614174000已启用。验证这是否是预期的服务器。
服务器已封锁
Neo4j 代码 |
|
标题 |
|
描述 |
服务器 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
注意:成功完成 - 服务器已封锁。命令 |
分类 |
|
严重性级别 |
|
- 命令
-
CORDON SERVER "123e4567-e89b-12d3-a456-426614174000" - 返回的 GQLSTATUS 代码
-
00N81
- 返回的状态描述
-
注意:成功完成 - 服务器已封锁。
CORDON SERVER无效。服务器123e4567-e89b-12d3-a456-426614174000已封锁。验证这是否是预期的服务器。
- 命令
-
CORDON SERVER "123e4567-e89b-12d3-a456-426614174000" - 返回代码描述
-
服务器
123e4567-e89b-12d3-a456-426614174000已封锁。验证这是否是预期的服务器。
没有重新分配数据库
Neo4j 代码 |
|
标题 |
|
描述 |
没有重新分配数据库。目前无法实现更好的分配。 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
注意:成功完成 - 没有重新分配数据库。命令 |
分类 |
|
严重性级别 |
|
- 命令
-
REALLOCATE DATABASES - 返回的 GQLSTATUS 代码
-
00N82
- 返回的状态描述
-
注意:成功完成 - 没有重新分配数据库。
REALLOCATE DATABASES无效。没有重新分配数据库。目前无法实现更好的分配。 - 示例场景
-
场景 1: 集群已经平衡。例如,当有三个服务器时,每个服务器都托管数据库
foo和bar,这意味着所有数据库都分配给了所有服务器。场景 2: 集群看起来不平衡,但服务器约束阻止您移动到更好、更平衡的分配。例如,假设服务器 1 托管数据库
foo和bar,服务器 2 仅托管foo,而服务器 3 不托管任何数据库。那么,更好的分配将是将foo从服务器 1 移动到服务器 3,但如果服务器 3 有约束deniedDatabases:['foo']},则集群已根据此约束平衡。
- 命令
-
REALLOCATE DATABASES - 返回代码描述
-
没有重新分配数据库。目前无法实现更好的分配。
- 示例场景
-
场景 1: 集群已经平衡。例如,当有三个服务器时,每个服务器都托管数据库
foo和bar,这意味着所有数据库都分配给了所有服务器。场景 2: 集群看起来不平衡,但服务器约束阻止您移动到更好、更平衡的分配。例如,假设服务器 1 托管数据库
foo和bar,服务器 2 仅托管foo,而服务器 3 不托管任何数据库。那么,更好的分配将是将foo从服务器 1 移动到服务器 3,但如果服务器 3 有约束deniedDatabases:['foo']},则集群已根据此约束平衡。
分配期间存在已封锁的服务器
当 Cypher 管理命令触发分配决策且部分服务器被封锁时,会返回此通知。例如,CREATE DATABASE、ALTER DATABASE、DEALLOCATE DATABASES FROM SERVER[S] 和 ALTER DATABASE 会返回此通知。但是,REALLOCATE DATABASES 要求不存在已封锁的服务器,因此不会返回它。
Neo4j 代码 |
|
标题 |
在做出分配决策时存在已封锁的服务器。 |
描述 |
服务器 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
注意:成功完成 - 分配期间存在已封锁的服务器。在做出分配决策时存在已封锁的服务器。服务器 |
分类 |
|
严重性级别 |
|
该示例假设您有一个包含三个服务器的集群,其中服务器 123e4567-e89b-12d3-a456-426614174000 使用 dbms.cluster.cordonServer 过程被封锁。那么以下命令将返回此通知。
- 命令
-
CREATE DATABASE foo TOPOLOGY 2 PRIMARIES - 返回的 GQLSTATUS 代码
-
00N83
- 返回的状态描述
-
注意:成功完成 - 分配期间存在已封锁的服务器。在做出分配决策时存在已封锁的服务器。服务器
123e4567-e89b-12d3-a456-426614174000已封锁。这会影响分配决策。
该示例假设您有一个包含三个服务器的集群,其中服务器 123e4567-e89b-12d3-a456-426614174000 使用 dbms.cluster.cordonServer 过程被封锁。那么以下命令将返回此通知。
- 命令
-
CREATE DATABASE foo TOPOLOGY 2 PRIMARIES - 返回代码描述
-
服务器
123e4567-e89b-12d3-a456-426614174000已封锁。这会影响分配决策。
请求的拓扑与当前拓扑匹配
Neo4j 代码 |
|
标题 |
|
描述 |
请求的拓扑与当前拓扑匹配。未更改任何分配。 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
注意:成功完成 - 请求的拓扑与当前拓扑匹配。命令 |
分类 |
|
严重性级别 |
|
该示例假设您有一个包含三个服务器的集群,以及一个具有两个主节点和一个从节点的拓扑的数据库 foo。
- 命令
-
ALTER DATABASE foo SET TOPOLOGY 2 PRIMARIES 1 SECONDARY - 返回的 GQLSTATUS 代码
-
00N84
- 返回的状态描述
-
注意:成功完成 - 请求的拓扑与当前拓扑匹配。命令
ALTER DATABASE无效。请求的拓扑与当前拓扑匹配。未更改任何分配。
该示例假设您有一个包含三个服务器的集群,以及一个具有两个主节点和一个从节点的拓扑的数据库 foo。
- 命令
-
ALTER DATABASE foo SET TOPOLOGY 2 PRIMARIES 1 SECONDARY - 返回代码描述
-
请求的拓扑与当前拓扑匹配。未更改任何分配。
WAIT 命令期间服务器已赶上进度Cypher 252025.01 引入
Neo4j 代码 |
|
标题 |
服务器已赶上进度。 |
描述 |
位于地址 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
信息:服务器已赶上进度。位于地址 |
分类 |
|
严重性级别 |
|
WAIT 命令成功完成- 查询
-
CREATE DATABASE foo TOPOLOGY 2 PRIMARIES WAIT
集群中的每个服务器都返回一个通知
- 返回的 GQLSTATUS 代码
-
03N85
- 返回的状态描述
-
信息:服务器已赶上进度。位于地址
localhost:20025的服务器ServerId{0e010000}已赶上进度。 - 返回的 GQLSTATUS 代码
-
03N85
- 返回的状态描述
-
信息:服务器已赶上进度。位于地址
localhost:20026的服务器ServerId{0e020000}已赶上进度。
- 查询
-
CREATE DATABASE foo TOPOLOGY 2 PRIMARIES WAIT集群中的每个服务器都返回一个通知
- 返回代码描述
-
位于地址
localhost:20025的服务器ServerId{0e010000}已赶上进度。 - 返回代码描述
-
位于地址
localhost:20026的服务器ServerId{0e020000}已赶上进度。
WAIT 命令期间服务器失败Cypher 252025.01 引入
Neo4j 代码 |
|
标题 |
服务器失败。 |
描述 |
位于地址 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:服务器失败。位于地址 |
分类 |
|
严重性级别 |
|
WAIT 命令期间两个服务器中的一个失败- 查询
-
CREATE DATABASE foo TOPOLOGY 2 PRIMARIES WAIT
集群中的每个服务器都返回一个通知
- 返回的 GQLSTATUS 代码
-
03N85
- 返回的状态描述
-
信息:服务器已赶上进度。位于地址
localhost:20025的服务器ServerId{0e010000}已赶上进度。 - 返回的 GQLSTATUS 代码
-
01N80
- 返回的状态描述
-
警告:服务器失败。位于地址
localhost:20026的服务器ServerId{0e020000}失败:Caught up but has failure for DatabaseId{0db00002[foo]} Failure: java.nio.file.FileAlreadyExistsException: <…> - 改进建议
-
使用提供的消息调查失败的服务器。
- 查询
-
CREATE DATABASE foo TOPOLOGY 2 PRIMARIES WAIT集群中的每个服务器都返回一个通知
- 返回代码描述
-
位于地址
localhost:20025的服务器ServerId{0e010000}已赶上进度。 - 返回代码描述
-
位于地址
localhost:20026的服务器ServerId{0e020000}失败:Caught up but has failure for DatabaseId{0db00002[foo]} Failure: java.nio.file.FileAlreadyExistsException: <…> - 改进建议
-
使用提供的消息调查失败的服务器。
WAIT 命令期间服务器仍在赶上进度Cypher 252025.01 引入
Neo4j 代码 |
|
标题 |
服务器仍在赶上进度。 |
描述 |
位于地址 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:服务器正在赶上进度。位于地址 |
分类 |
|
严重性级别 |
|
WAIT 命令期间两个服务器中的一个仍在赶上进度- 查询
-
CREATE DATABASE foo TOPOLOGY 2 PRIMARIES WAIT
集群中的每个服务器都返回一个通知
- 返回的 GQLSTATUS 代码
-
03N85
- 返回的状态描述
-
信息:服务器已赶上进度。位于地址
localhost:20025的服务器ServerId{0e010000}已赶上进度。 - 返回的 GQLSTATUS 代码
-
01N81
- 返回的状态描述
-
警告:服务器正在追赶进度。地址为
localhost:20026的服务器ServerId{0e020000}仍在追赶进度。 - 改进建议
-
此行为表明其中一台服务器处理滞后。请调查该服务器和网络的性能问题,或增加等待超时时间。
- 查询
-
CREATE DATABASE foo TOPOLOGY 2 PRIMARIES WAIT集群中的每个服务器都返回一个通知
- 返回代码描述
-
位于地址
localhost:20025的服务器ServerId{0e010000}已赶上进度。 - 返回代码描述
-
地址为
localhost:20026的服务器ServerId{0e020000}仍在追赶进度。 - 改进建议
-
此行为表明其中一台服务器处理滞后。请调查该服务器和网络的性能问题,或增加等待超时时间。
在 WAIT 命令期间服务器不可用Cypher 252025.01 引入
Neo4j 代码 |
|
标题 |
服务器不可用。 |
描述 |
服务器 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:服务器不可用。服务器 |
分类 |
|
严重性级别 |
|
WAIT 命令期间两台服务器中的一台不可用- 查询
-
CREATE DATABASE foo TOPOLOGY 2 PRIMARIES WAIT
集群中的每个服务器都返回一个通知
- 返回的 GQLSTATUS 代码
-
03N85
- 返回的状态描述
-
信息:服务器已赶上进度。位于地址
localhost:20025的服务器ServerId{0e010000}已赶上进度。 - 返回的 GQLSTATUS 代码
-
01N82
- 返回的状态描述
-
警告:服务器不可用。地址为
localhost:20026的服务器ServerId{0e020000}不可用。 - 改进建议
-
请调查服务器以确定其不可用的原因。
- 查询
-
CREATE DATABASE foo TOPOLOGY 2 PRIMARIES WAIT集群中的每个服务器都返回一个通知
- 返回代码描述
-
位于地址
localhost:20025的服务器ServerId{0e010000}已赶上进度。 - 返回代码描述
-
地址为
localhost:20026的服务器ServerId{0e020000}不可用。 - 改进建议
-
请调查服务器以确定其不可用的原因。
SCHEMA(模式)通知
模式通知提供与索引和约束相关的额外信息。
索引或约束已存在
Neo4j 代码 |
|
标题 |
|
描述 |
|
描述 |
|
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
提示:成功完成 - 索引或约束已存在。命令 |
严重性级别 |
|
*<command> 和 cmd 可以是用户给出的完整命令,也可以是给出命令的子集。
假设在 (:Label {property}) 上存在名为 existingRangeIndex 的范围索引。
- 命令
-
CREATE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (n:Label) ON (n.property) - 返回的 GQLSTATUS 代码
-
00NA0
- 返回的状态描述
-
提示:成功完成 - 索引或约束已存在。
CREATE RANGE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (e:Label) ON (e.property)未产生任何效果。RANGE INDEX existingRangeIndex FOR (e:Label) ON (e.property)已存在。
假设在 (:Label {property}) 上存在名为 existingRangeIndex 的范围索引。
- 命令
-
CREATE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (n:Label) ON (n.property) - 返回代码的标题
-
CREATE RANGE INDEX labelProperyRangeIndex IF NOT EXISTS FOR (e:Label) ON (e.property)未产生任何效果。 - 返回代码的完整描述
-
RANGE INDEX existingRangeIndex FOR (e:Label) ON (e.property)已存在。
假设在 (:Label {property}) 上存在名为 myIndex 的范围索引。
- 命令
-
CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[r:REL_TYPE]-() ON (r.property) - 返回的 GQLSTATUS 代码
-
00NA0
- 返回的状态描述
-
提示:成功完成 - 索引或约束已存在。
CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[e:REL_TYPE]-() ON (e.property)未产生任何效果。RANGE INDEX myIndex FOR (e:Label) ON (e.property)已存在。 - 改进建议
-
请为新索引选择一个不同的名称并重试。
CREATE TEXT INDEX myIndex2 IF NOT EXISTS FOR ()-[r:REL_TYPE]-() ON (r.property)
假设在 (:Label {property}) 上存在名为 myIndex 的范围索引。
- 命令
-
CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[r:REL_TYPE]-() ON (r.property) - 返回代码的标题
-
CREATE TEXT INDEX myIndex IF NOT EXISTS FOR ()-[e:REL_TYPE]-() ON (e.property)未产生任何效果。 - 返回代码的完整描述
-
RANGE INDEX myIndex FOR (e:Label) ON (e.property)已存在。 - 改进建议
-
请为新索引选择一个不同的名称并重试。
CREATE TEXT INDEX myIndex2 IF NOT EXISTS FOR ()-[r:REL_TYPE]-() ON (r.property)
假设在 (:Label {property}) 上存在名为 nodeKeyLabelPropertyConstraint 的节点键约束。
- 命令
-
CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (n:Label) REQUIRE (n.property) IS NODE KEY - 返回的 GQLSTATUS 代码
-
00NA0
- 返回的状态描述
-
提示:成功完成 - 索引或约束已存在。
CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (e:Label) REQUIRE (e.property) IS NODE KEY未产生任何效果。CONSTRAINT nodeKeyLabelPropertyConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY已存在。
假设在 (:Label {property}) 上存在名为 nodeKeyLabelPropertyConstraint 的节点键约束。
- 命令
-
CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (n:Label) REQUIRE (n.property) IS NODE KEY - 返回代码的标题
-
CREATE CONSTRAINT nodeKeyLabelPropertyConstraint IF NOT EXISTS FOR (e:Label) REQUIRE (e.property) IS NODE KEY未产生任何效果。 - 返回代码的完整描述
-
CONSTRAINT nodeKeyLabelPropertyConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY已存在。
假设在 (:Label {property}) 上存在名为 myConstraint 的节点键约束。
- 命令
-
CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (n:Label2) REQUIRE (n.property2) IS NOT NULL - 返回的 GQLSTATUS 代码
-
00NA0
- 返回的状态描述
-
提示:成功完成 - 索引或约束已存在。
CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (e:Label2) REQUIRE (e.property2) IS NOT NULL未产生任何效果。CONSTRAINT myConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY已存在。 - 改进建议
-
请为新约束选择一个不同的名称并重试。
CREATE CONSTRAINT myConstraint2 IF NOT EXISTS FOR (n:Label2) REQUIRE (n.property2) IS NOT NULL
假设在 (:Label {property}) 上存在名为 myConstraint 的节点键约束。
- 命令
-
CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (n:Label2) REQUIRE (n.property2) IS NOT NULL - 返回代码的标题
-
CREATE CONSTRAINT myConstraint IF NOT EXISTS FOR (e:Label2) REQUIRE (e.property2) IS NOT NULL未产生任何效果。 - 返回代码的完整描述
-
CONSTRAINT myConstraint FOR (e:Label) REQUIRE (e.property) IS NODE KEY已存在。 - 改进建议
-
请为新约束选择一个不同的名称并重试。
CREATE CONSTRAINT myConstraint2 IF NOT EXISTS FOR (n:Label2) REQUIRE (n.property2) IS NOT NULL
索引或约束不存在
Neo4j 代码 |
|
标题 |
|
描述 |
|
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
提示:成功完成 - 索引或约束不存在。命令 |
严重性级别 |
|
- 命令
-
DROP INDEX nonExistingIndex IF EXISTS - 返回的 GQLSTATUS 代码
-
00NA1
- 返回的状态描述
-
提示:成功完成 - 索引或约束不存在。
DROP INDEX nonExistingIndex IF EXISTS未产生任何效果。nonExistingIndex不存在。 - 改进建议
-
请核实这是否为您预期的索引,并确保拼写正确。
- 命令
-
DROP INDEX nonExistingIndex IF EXISTS - 返回代码的标题
-
DROP INDEX nonExistingIndex IF EXISTS未产生任何效果。 - 返回代码的完整描述
-
nonExistingIndex不存在。 - 改进建议
-
请核实这是否为您预期的索引,并确保拼写正确。
- 命令
-
DROP CONSTRAINT nonExistingConstraint IF EXISTS - 返回的 GQLSTATUS 代码
-
00NA1
- 返回的状态描述
-
提示:成功完成 - 索引或约束不存在。
DROP CONSTRAINT nonExistingConstraint IF EXISTS未产生任何效果。nonExistingConstraint不存在。 - 改进建议
-
请核实这是否为您预期的约束,并确保拼写正确。
- 命令
-
DROP CONSTRAINT nonExistingConstraint IF EXISTS - 返回代码的标题
-
DROP CONSTRAINT nonExistingConstraint IF EXISTS未产生任何效果。 - 返回代码的完整描述
-
nonExistingConstraint不存在。 - 改进建议
-
请核实这是否为您预期的约束,并确保拼写正确。
GENERIC(通用)通知
GENERIC 通知代码不属于任何更广泛的类型,彼此之间也没有联系。
子查询变量屏蔽
Neo4j 代码 |
|
标题 |
子查询中的变量屏蔽了来自外部作用域的同名变量。 |
描述 |
子查询中的变量屏蔽了来自外部作用域的同名变量。如果您希望使用该变量,则必须使用变量作用域子句将其导入子查询中。( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
|
分类 |
|
严重性级别 |
|
- 查询
-
MATCH (n) CALL { MATCH (n)--(m) RETURN m } RETURN * - 返回的 GQLSTATUS 代码
-
03N60
- 返回的状态描述
-
信息:子查询变量屏蔽。子查询中的变量
n使用了与外部查询中变量相同的名称。除非您希望将其作为新变量,否则请使用CALL (n)导入外部作用域的变量。 - 改进建议
-
如果查询的预期行为是将子查询中的变量作为新变量,则无需执行任何操作。如果预期行为是使用来自外部查询的变量,则需要使用变量作用域子句将其导入到子查询中。
MATCH (n) CALL (n) { MATCH (n)--(m) RETURN m } RETURN *
- 查询
-
MATCH (n) CALL { MATCH (n)--(m) RETURN m } RETURN * - 返回代码描述
-
子查询中的变量屏蔽了来自外部作用域的同名变量。如果您希望使用该变量,则必须使用变量作用域子句将其导入子查询中。(被屏蔽的变量是:
n) - 改进建议
-
如果查询的预期行为是将子查询中的变量作为新变量,则无需执行任何操作。如果预期行为是使用来自外部查询的变量,则需要使用变量作用域子句将其导入到子查询中。
MATCH (n) CALL (n) { MATCH (n)--(m) RETURN m } RETURN *
多余的可选程序调用
Neo4j 代码 |
|
标题 |
当过程调用的是无效(void)过程时,使用 |
描述 |
由于 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
信息:多余的可选程序调用。由于 |
分类 |
|
严重性级别 |
|
OPTIONAL- 查询
-
OPTIONAL CALL db.createLabel("A") - 返回的 GQLSTATUS 代码
-
03N61
- 返回的状态描述
-
信息:多余的可选程序调用。由于
CALL db.createLabel是一个无效过程,使用OPTIONAL是多余的。 - 改进建议
-
如果查询的预期行为是使用无效过程,则可以移除
OPTIONAL关键字,且不会对查询产生影响。CALL db.createLabel("A")
- 查询
-
OPTIONAL CALL db.createLabel("A") - 返回代码描述
-
由于
CALL db.createLabel是一个无效过程,使用OPTIONAL是多余的。 - 改进建议
-
如果查询的预期行为是使用无效过程,则可以移除
OPTIONAL关键字,且不会对查询产生影响。CALL db.createLabel("A")
多余的可选子查询
Neo4j 代码 |
|
标题 |
当 |
描述 |
由于 |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
信息:多余的可选子查询。由于 |
分类 |
|
严重性级别 |
|
CALL 子查询中多余地使用 OPTIONAL- 查询
-
UNWIND [1, 2, 3] AS x OPTIONAL CALL (x) { CREATE({i:x}) } - 返回的 GQLSTATUS 代码
-
03N62
- 返回代码描述
-
信息:多余的可选子查询。由于
CALL是一个单元子查询,使用OPTIONAL是多余的。 - 改进建议
-
如果查询的预期行为是子查询不返回任何值,则可以移除
OPTIONAL关键字,且不会对查询产生影响。UNWIND [1, 2, 3] AS x CALL (x) { CREATE({i:x}) }
- 查询
-
UNWIND [1, 2, 3] AS x OPTIONAL CALL (x) { CREATE({i:x}) } - 返回代码描述
-
在单元子查询的情况下,Optional 是多余的。在单元子查询上使用
OPTIONAL不会产生任何效果,可以将其移除。 - 改进建议
-
如果查询的预期行为是子查询不返回任何值,则可以移除
OPTIONAL关键字,且不会对查询产生影响。UNWIND [1, 2, 3] AS x CALL (x) { CREATE({i:x}) }
标识符屏蔽变量
Neo4j 代码 |
|
标题 |
标识符正在屏蔽作用域内的变量。 |
描述 |
|
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
|
分类 |
|
严重性级别 |
|
SEARCH 子句中用于索引名称的标识符屏蔽了作用域内的变量- 查询
-
CYPHER 25 WITH "myPlotString" AS moviePlots MATCH (m:Movie {title:'Matrix, The'}) MATCH (movie:Movie) SEARCH movie IN ( VECTOR INDEX moviePlots FOR m.embedding LIMIT 5 ) SCORE AS score RETURN movie.title AS title, score, moviePlots - 返回的 GQLSTATUS 代码
-
03N63
- 返回代码描述
-
信息:标识符屏蔽变量。
VECTOR INDEX子句中的标识符moviePlots与作用域内的变量同名。无论变量计算出什么结果,使用的都将是字面量moviePlots。 - 改进建议
-
请考虑将变量重命名为其他名称以避免混淆。
CYPHER 25 WITH "myPlotString" AS plotString MATCH (m:Movie {title:'Matrix, The'}) MATCH (movie:Movie) SEARCH movie IN ( VECTOR INDEX moviePlots FOR m.embedding LIMIT 5 ) SCORE AS score RETURN movie.title AS title, score, plotString
- 查询
-
CYPHER 25 WITH "myPlotString" AS moviePlots MATCH (m:Movie {title:'Matrix, The'}) MATCH (movie:Movie) SEARCH movie IN ( VECTOR INDEX moviePlots FOR m.embedding LIMIT 5 ) SCORE AS score RETURN movie.title AS title, score, moviePlots - 返回代码描述
-
VECTOR INDEX子句中的标识符moviePlots与作用域内的变量同名。无论变量计算出什么结果,使用的都将是字面量moviePlots。 - 改进建议
-
请考虑将变量重命名为其他名称以避免混淆。
CYPHER 25 WITH "myPlotString" AS plotString MATCH (m:Movie {title:'Matrix, The'}) MATCH (movie:Movie) SEARCH movie IN ( VECTOR INDEX moviePlots FOR m.embedding LIMIT 5 ) SCORE AS score RETURN movie.title AS title, score, plotString
缺少参数
Neo4j 代码 |
|
标题 |
该语句引用了请求中未提供的参数。 |
描述 |
未向查询提供足够的参数。生成的查询计划将无法缓存,且在没有 EXPLAIN 的情况下无法执行。( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:缺少参数。由于未定义的参数 |
分类 |
|
严重性级别 |
|
EXPLAIN 查询- 查询
-
EXPLAIN WITH $param as param RETURN param - 返回的 GQLSTATUS 代码
-
01N60
- 返回的状态描述
-
警告:缺少参数。由于未定义的参数
{ $param },查询计划无法缓存,且在没有EXPLAIN的情况下无法执行。请提供相应参数。 - 改进建议
-
请提供参数以便缓存该计划。
- 查询
-
EXPLAIN WITH $param as param RETURN param - 返回代码描述
-
未向查询提供足够的参数。生成的查询计划将无法缓存,且在没有
EXPLAIN的情况下无法执行。(缺失参数:param) - 改进建议
-
请提供参数以便缓存该计划。
过程或函数执行警告
Neo4j 代码 |
|
标题 |
查询使用了生成警告的过程。 |
描述 |
查询使用了生成警告的过程。( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
|
分类 |
|
严重性级别 |
|
不可满足的关系类型表达式
当匹配无法满足的关系类型表达式时,例如要求零个、多个或矛盾的类型。
Neo4j 代码 |
|
标题 |
查询包含无法满足的关系类型表达式。 |
描述 |
关系类型表达式无法满足。( |
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
警告:不可满足的关系类型表达式。表达式 |
分类 |
|
严重性级别 |
|
- 查询
-
MATCH ()-[r:R1&R2]->() RETURN r - 返回的 GQLSTATUS 代码
-
01N61
- 返回的状态描述
-
警告:不可满足的关系类型表达式。表达式
R1&R2无法满足,因为关系必须恰好有一种类型。
- 查询
-
MATCH ()-[r:R1&R2]->() RETURN r - 返回代码描述
-
关系类型表达式无法满足。(
R1&R2永远不能被任何关系满足。关系必须恰好有一种类型。)
重复的关系引用
Neo4j 代码 |
|
标题 |
由于关系变量被绑定多次,查询未返回任何结果。 |
描述 |
|
类别 |
|
GQLSTATUS 代码 |
|
状态描述 |
|
分类 |
|
严重性级别 |
|
- 查询
-
MATCH (:A)-[r]->(), ()-[r]->(:B) RETURN r - 返回的 GQLSTATUS 代码
-
01N63
- 返回的状态描述
-
警告:重复的关系引用。
r在(:A)-[r]→(), ()-[r]→(:B)中重复,这导致没有结果。 - 改进建议
-
使用一个模式来匹配所有以标签为
A的节点开始并以标签为B的节点结束的关系MATCH (:A)-[r]->(:B) RETURN r
- 查询
-
MATCH (:A)-[r]->(), ()-[r]->(:B) RETURN r - 返回代码描述
-
关系在查询中被引用多次,导致没有结果,因为关系在每个结果中不得出现多次。(关系
r被重复) - 改进建议
-
使用一个模式来匹配所有以标签为
A的节点开始并以标签为B的节点结束的关系MATCH (:A)-[r]->(:B) RETURN r
- 查询
-
MATCH ()-[r*]->()<-[r*]-() RETURN count(*) AS count - 返回的 GQLSTATUS 代码
-
01N63
- 返回的状态描述
-
警告:重复的关系引用。
r在()-[r*]→()←[r*]-()中重复,这导致没有结果。
- 查询
-
MATCH ()-[r*]->()<-[r*]-() RETURN count(*) AS count - 返回代码描述
-
变长关系变量被绑定多次,导致没有结果,因为关系在每个结果中不得出现多次。(关系 r 被重复)
术语表
- $action
-
操作的自由格式描述。
- $alias
-
别名名称,例如
mydb-alias。 - $aliasList
-
别名名称列表,例如
mydb-alias1, mydb-alias2。 - $allocType
-
分配类型(
primary或secondary)。 - $arg
-
过程或函数参数,例如
database、pause、dryrun等。 - $argType
-
参数类型,输入或输出。
- $auth
-
认证提供程序名称,例如
ldap、native。 - $authRule
-
ABAC 认证规则名称。
- $boltServerState
-
Bolt 服务器状态,例如
READY。 - $boltMsgLenLimit
-
Bolt 消息长度限制,例如
1000。 - $bytes
-
字节数。
- $cause
-
错误原因的自由格式描述。
- $cfgSetting
-
配置设置键,例如
server.https.enabled。 - $clause
-
Cypher 子句,例如
USE、MATCH。 - $clause
-
Cypher 子句列表,例如
USE, MATCH。 - $cmd
-
Cypher 命令,例如
DROP DATABASE、PROFILE、SHOW PROCEDURES。 - $component
-
组件的组成部分,例如时间中的时/分,整体输入中的子集输入,整个
CREATE/ALTER DB … SET TOPOLOGY中的TOPOLOGY子句等。 - $constr
-
约束名称,例如
book_isbn。 - $constrDescrOrName
-
约束描述,
(:Label {property0, property1, property2, property1, property3})。 - $context
-
上下文的自由格式描述,即某事无效或不受支持的地方,
OPTIONS、URL、username等。 - $coordinates
-
坐标值,例如
[3.15, 4.012, 5.905]。 - $count
-
某物的数量,例如
3。 - $countAllocs
-
期望使用的服务器数量。
- $countSeeders
-
种子服务器数量。
- $crs
-
坐标参考系统,例如
WGS84。 - $db
-
数据库名称,例如
myDb。 - $dbList
-
数据库名称列表。
- $dim
-
代表索引或点维度的数字。
- $edition
-
Neo4j 版本,例如 Community 或 Enterprise。
- $endpointType
-
关系的
start(起点)或end(终点)之一。 - $entityId
-
节点或关系的 ID。
- $entityType
-
一个节点或一个关系。
- $expr
-
Cypher 表达式,例如
1 + n.prop。 - $exprType
-
自由格式表达式类型,例如
EXISTS、COUNT、COLLECT。 - $feat
-
自由格式的功能描述。
- $field
-
输入字段,例如用于过程、函数或反序列化的字段。
- $fun
-
函数名称,例如
collect()。 - $funClass
-
用户自定义函数实现类名,例如
MyFunctionClass。 - $funType
-
函数类型,例如非确定性函数或聚合函数。
- $graph
-
图的名称,例如
myGraph。 - $graphTypeDependence
-
约束的图类型依赖关系,为
UNDESIGNATED、INDEPENDENT或DEPENDENT之一。 - $graphTypeElement
-
图类型的元素,例如
(:Node ⇒ { name :: STRING})或(:Source)-[:REL ⇒]→(:Target)。 - $graphTypeReference
-
图类型引用,例如
(:Node ⇒)或p。 - $graphTypeOperation
-
图类型操作,例如
SET、ADD、DROP或ALTER之一。 - $hint
-
提示的自由格式描述,例如
USING INDEX n:N(prop)。 - $hintList
-
提示的自由格式描述列表,如
USING INDEX n:N(prop)。 - $ident
-
通用标识符,例如
my_identifier。 - $idx
-
索引名称,
my_index。 - $idxDescr
-
索引描述,例如
INDEX :Person(name)。 - $idxDescrOrName
-
索引描述符或名称。
- $idxOrConstr
-
索引或约束名称,例如
my_index或book_isbn。 - $idxOrConstrPat
-
索引或约束模式,例如
CREATE CONSTRAINT bar IF NOT EXISTS FOR (n:L) REQUIRE (n.p1) IS NODE KEY。 - $idxType
-
索引类型,例如文本、向量等。
- $input
-
用户输入片段。
- $inputList
-
用户输入列表。
- $item
-
项目的自由格式描述。
- $keyword
-
Cypher 关键字,例如
MERGE。 - $label
-
标签名称,例如
Person。 - $labelExpr
-
标签表达式,例如
(n:Movie|Person)。 - $labelList
-
标签名称列表,例如
Person, Actor。 - $lower
-
范围中可接受的最小值。
- $mapKey
-
映射键。
- $mapKeyList
-
映射键列表,例如映射
{first: 1, second: 2}中的first 和 second。 - $matchMode
-
GPM 匹配模式,例如
REPEATABLE ELEMENTS。 - $msg
-
自由格式消息。
- $msgTitle
-
自由格式消息标题。
- $namespaceList
-
过程命名空间列表,例如
apoc.math.。 - $operation
-
数学运算,例如
/ by zero,>。 - $option
-
选项名称。
- $optionList
-
选项名称列表。
- $param
-
参数名称,例如
$pattern。 - $paramList
-
参数列表,例如
$pattern, $prop。 - $pat
-
模式,例如
(:Person)。 - $pathMode
-
GPM 路径模式,例如
ACYCLIC。 - $pathModeList
-
GPM 路径模式列表,例如
TRAIL, ACYCLIC。 - $port
-
端口名称,例如
6362。 - $portList
-
端口名称列表,例如
6362, 6000, 7000。 - $pos
-
位置,例如在序列中,例如
2。 - $pred
-
谓词,例如
x = 3。 - $predList
-
谓词列表,例如
'x = 3', 'y > 4'。 - $preparserInput
-
预解析器输入片段。
- $proc
-
过程名称,例如
db.labels()。 - $procClass
-
用户自定义过程实现类名,例如
MyProcedureClass。 - $procExeMode
-
过程执行模式,
READ、WRITE、SCHEMA和DBMS之一。 - $procField
-
用户自定义过程实现类的参数名称,例如
myArgument。 - $procFieldType
-
用户自定义过程实现类的参数类型,
input或output之一。 - $procFun
-
过程或函数名称或 ID,例如
db.labels()或collect()。 - $procMethod
-
用户自定义过程实现类的方法名称,例如
myProcedureMethod。 - $procParam
-
用户自定义过程实现参数名称。
- $procParamFmt
-
自由格式的用户自定义过程实现参数格式,例如
com.example.*。 - $propKey
-
属性键名称,例如
name。 - $propKeyList
-
属性键名称列表,例如
name, age, hometown。 - $query
-
从数据库检索或写入信息的语句,例如
MATCH (n) WHERE n.prop。 - $reasonList
-
失败原因列表。
- $relType
-
关系类型名称,例如
KNOWS。 - $replacement
-
自由格式文本,弃用功能的替代方案,Cypher 命令等。
- $role
-
RBAC 角色名称,例如
admin、public、receptionist。 - $routingPolicy
-
路由策略名称。
- $runtime
-
Cypher 运行时名称。
slotted、pipelined和parallel之一。 - $schemaDescr
-
模式描述符,例如
(:Label1 {prop1})。 - $schemaDescrType
-
模式描述符的自由格式类型,例如
label property existence constraint。 - $selector
-
GPM 路径选择器,例如
ALL PATHS,SHORTEST 2等。 - $selectorType
-
选择器类型。
- $server
-
服务器名称或 ID,例如
25a7efc7-d063-44b8-bdee-f23357f89f01。 - $serverList
-
服务器名称或 ID 列表,例如
'server-1', 'server-2'。 - $serverType
-
服务器类型,
PRIMARY(primaryConstrained),SECONDARY(secondaryConstrained) 或NONE。 - $serverAddress
-
服务器地址,例如
localhost:20025。 - $sig
-
过程或函数签名,例如
date(input = DEFAULT_TEMPORAL_ARGUMENT :: ANY) :: DATE。 - $storeFormat
-
存储格式名称。"aligned", "block", "standard", "high_limit" 之一。
- $syntax
-
Cypher 语法或关键字。
- $temporal
-
时间值,例如
2025-02-18。 - $timeAmount
-
时间单位的整数值(数字)。
- $timeUnit
-
常用时间单位名称,例如
seconds,minutes,hours。 - $token
-
Token 名称,例如
MyLabel,MyRelationshipType,myPropertyKey。 - $tokenId
-
Token ID。
- $tokenType
-
标签、关系类型或属性键之一。
- $transactionId
-
运行中查询的事务 ID。
- $typeDescription
-
类型的自由格式描述,例如 'a list'。
- $upper
-
范围中可接受的最大值。
- $url
-
URL,例如 https://example.com。
- $user
-
用户名,例如
neo4j。 - $value
-
某个值。
- $valueList
-
值列表。
- $valueType
-
Cypher 值类型,例如
STRING,BOOLEAN,INTEGER,LIST<STRING>等。 - $valueTypeList
-
Cypher 值类型列表。
- $variable
-
变量名称,例如
n。 - $variableList
-
变量名称列表,例如
a, b, c。 - $version
-
版本,例如
CYPHER 25中的25。