Neo4j:仅当不存在时如何调用";create index"; [英] Neo4j: How to call "CREATE INDEX" only if not exists
本文介绍了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:仅当不存在时如何调用";create index";的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文