Neo4j:仅当不存在时如何调用"create index" [英] Neo4j: How to call "CREATE INDEX" only if not exists

查看:34
本文介绍了Neo4j:仅当不存在时如何调用"create index"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

CREATE INDEX <indexName>命令不是幂等的,如果给定的索引已经存在,则会导致错误。我刚接触ne4j,找不到一个可以避免这个错误的谓词。我尝试了ANY(...)的各种排列,它们都出现在"db.index()"中。

由于CREATE INDEX ...在索引存在时失败,DROP INDEX ...在索引不存在时失败,我不知道如何编写仅在需要时创建索引的.cypher文件。

缩写形式可能类似于CREATE INDEX indexName FOR (c:SomeLabel) ON (c.someProperty) IF NOT EXISTS,但该缩写形式当然不存在。

有没有什么方法可以使用谓词、子查询或某种这样的表达式来实现这一点?

推荐答案

我尝试了两个建议,但都没有解决我的问题。我没有时间通过反复试验来了解如何在我的环境中安装APOC。

mbh86答案的第一行不准确,至少在我的系统中是这样。该命令不会被忽略,它会失败并返回错误。因此,如果同一密码脚本中有任何其他内容,则它将失败。

显然,我最多只能将CREATE INDEX包装在命令行字符串中,从bash或python脚本运行该字符串,运行它,然后检查调用程序的返回代码。

我感谢两位评论员的努力,我不想让任何一位悬而未决。

这篇关于Neo4j:仅当不存在时如何调用&quot;create index&quot;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆