【发布时间】:2018-05-22 02:12:07
【问题描述】:
我正在使用带有 Bolt 的 Neo4j 和 Java 中的 Neo4j 驱动程序。当我试图跑 以下命令:
DROP INDEX ON :SingleBoardComputer(id.id)
请注意,属性的名称实际上是“id.id”(基本上是一个点)。
我有以下错误:
Neo.ClientError.Statement.SyntaxError: Invalid input '\': expected whitespace or a list of property key names (line 1, column 36 (offset: 35))
"DROP INDEX ON :SingleBoardComputer(id.id)"
有没有办法使用驱动删除索引?
我正在使用 Neo4j 3.3.5 和 neo4j 驱动程序 1.6.1
我很惊讶,因为我可以毫无问题地创建索引。
谢谢
【问题讨论】:
-
您使用的是什么版本的 neo4j?
CREATE INDEX ON :SingleBoardComputer(id.id)不应该起作用,因为“id.id”中的点在这种情况下是不合法的。此外,节点属性值不能是地图,因此“id.id”无论如何都没有意义。 -
有可能,你只需要使用'`'转义字符
-
请更正您的问题,然后添加非常重要的特殊信息。或者,也许您应该在 DROP 子句中使用
id.id。 -
我看不出这个问题有什么问题。问题是我在一个带有字符“。”的属性上创建了一个索引。在名字里。如果您尝试在该特定索引上调用 DROP INDEX 命令,它将不起作用,除非您转义该属性的名称。这个问题有什么问题?
-
id.id与 `id.id` 的含义非常不同,后者非常不常用且出乎意料。因此,表明您使用 `id.id` 创建索引而不是仅仅说您创建索引没有问题会更准确(并且对回答者有帮助)。
标签: neo4j cypher neo4j-driver