如何以幂等方式创建Neo4j全文索引?
我有一些集成测试套件,它们运行一个Cypher init脚本,我希望所有的操作都是幂等的 运行如何以幂等方式创建Neo4j全文索引?,neo4j,neo4j-apoc,Neo4j,Neo4j Apoc,我有一些集成测试套件,它们运行一个Cypher init脚本,我希望所有的操作都是幂等的 运行CALL db.index.fulltext.createNodeIndex(“用户名”、[“用户”]、[“用户名”])第一次运行正常,但在后续尝试中失败 我试过: CALL apoc.do.when( apoc.schema.node.indexExists("User", ["username"]), 'RETURN NULL', 'CALL
CALL db.index.fulltext.createNodeIndex(“用户名”、[“用户”]、[“用户名”])
第一次运行正常,但在后续尝试中失败
我试过:
CALL apoc.do.when(
apoc.schema.node.indexExists("User", ["username"]),
'RETURN NULL',
'CALL db.index.fulltext.createNodeIndex("usernames", ["User"], ["username"])'
)
这导致:
Failed to invoke procedure `apoc.do.when`: Caused by: org.neo4j.graphdb.security.AuthorizationViolationException: Schema operations are not allowed for user 'neo4j' with roles [PUBLIC, admin] overridden by TOKEN_WRITE overridden by TOKEN_WRITE.
如何通过全文索引实现这一点
这是在Neo4j 4.2.1中,您不能运行密码查询来删除/创建索引。但您可以通过以下两个步骤删除/创建它
CALL db.index.fulltext.drop("usernames") ;
CALL db.index.fulltext.createNodeIndex("usernames", ["User"], ["username"]) ;
谢谢,但问题不是要删除索引。我只想确保在索引不存在的情况下创建索引。好了,Cypher query将无法做到这一点,您可以向Neo4j提交请求以添加该功能。