Neo4j Aura不支持apoc.cypher.runSchema

dkqlctbz  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(169)

对于neo4j Aura上的apoc调用,是否有解决方法?我需要它能够创建一个全文搜索索引。
如果我在www.example.com上尝试apoc.cypher.run,会出现此错误:

Neo.ClientError.Security.Forbidden 
Schema operations on database 'neo4j' are not allowed for user 'neo4j' with FULL overridden by READ.

Neo4j查询:

CALL db.propertyKeys() YIELD propertyKey 
CALL db.labels() YIELD label 
WITH apoc.text.join(collect(DISTINCT propertyKey), "`, n.`") as properties, apoc.text.join(collect(DISTINCT label), "`|`") AS labels 
CALL apoc.cypher.runSchema("CREATE FULLTEXT INDEX fullSearchIndex FOR(n:`" + labels + "`) ON EACH [n.`"+properties+"`]", {}) YIELD value RETURN value
x759pob2

x759pob21#

Aura只提供APOC服务的一部分。请在此处查看完整列表:https://neo4j.com/docs/aura/platform/apoc/
在您的特定情况下,apoc.cypher.runSchema仅在您动态创建语句并在单个查询中运行这些语句时才有用。
由于无法使用apoc.cypher.runSchema,因此需要在客户端创建并运行这些语句。
首先运行:

CALL db.propertyKeys() YIELD propertyKey 
CALL db.labels() YIELD label 
RETURN collect(DISTINCT propertyKey) as properties, collect(DISTINCT label) AS labels

在C#中处理结果并在其中创建语句。
然后,您可以逐个运行这些语句。
这显然比在服务器端做所有事情效率低,但我不认为有一个解决办法。

相关问题