Neo4j 密码:索引返回无效输入';我';:预计在和#x27=';,节点标签

Neo4j 密码:索引返回无效输入';我';:预计在和#x27=';,节点标签,neo4j,cypher,Neo4j,Cypher,这就是我正在做的。我真的不知道我做错了什么 在(n.id,n.username,n.email)上为(n:user)用户创建索引 输出是 无效输入“i”:应为“=”上的空格、注释、节点标签、, MapLiteral,一个参数,一个参数(旧语法),一个关系 模式“,”来自图形、构造、加载CSV、开始、匹配、展开、, 合并、创建唯一、创建、设置、删除、删除、FOREACH、WITH、, 呼叫,返回,联合,;'或输入结束(第1行第14列(偏移: 13) )“为(n:用户)创建索引” 您正在使用的已添加

这就是我正在做的。我真的不知道我做错了什么

在(n.id,n.username,n.email)上为(n:user)用户创建索引

输出是

无效输入“i”:应为“=”上的空格、注释、节点标签、, MapLiteral,一个参数,一个参数(旧语法),一个关系 模式“,”来自图形、构造、加载CSV、开始、匹配、展开、, 合并、创建唯一、创建、设置、删除、删除、FOREACH、WITH、, 呼叫,返回,联合,;'或输入结束(第1行第14列(偏移: 13) )“为(n:用户)创建索引”

您正在使用的已添加到neo4j 4.x中。旧版本的neo4j不支持此功能

在支持复合索引的旧版本(如neo4j 3.5)中,创建索引的方法是:

CREATE INDEX ON :User(id, username, email)

注意:4.0.4版目前仍支持此旧语法,但已弃用。

您确定要运行此确切的命令吗?我在一个新的Neo4j 4.0.3 docker实例中尝试了它,它完成时没有错误:»添加了1个索引,在41毫秒后完成。«我立即复制了命令。我用的是石墨烯db。我猜他们使用了一些旧版本的Neo4j。谢天谢地,我的graphenedb实例运行的是旧版本的Neo4j。非常感谢。但是要知道,新版本是否向后兼容,比如说Cypher命令?正如我所指出的,版本4.0.4仍然支持旧的语法。但是,由于4.x不支持旧语法,因此在开始使用4.x之后最好使用新语法。