该CREATE INDEX <indexName>
命令不是幂等的,如果给定索引已存在,则将导致错误。我是neo4j的新手,无法找到避免此错误的谓词。我尝试了的各种排列ANY(...)
,它们都放在“ db.indexes()”处。
由于CREATE INDEX ...
如果索引存在则失败,如果索引不存在则DROP INDEX ...
失败,因此我不知道如何编写仅在需要时创建索引的.cypher文件。
缩写形式可能类似于CREATE INDEX indexName FOR (c:SomeLabel) ON (c.someProperty) IF NOT EXISTS
,但当然不存在缩写形式。
是否有某种方式可通过谓词,子查询或某些此类表达式来执行此操作?
我尝试了两个建议,但都不能解决我的问题。我没有时间通过反复试验来发现如何在我的环境中安装APOC。
mbh86的答案的第一行是错误的,至少在我的系统中是这样。该命令不会被忽略,它会因错误而失败。因此,如果同一密码脚本中还有其他内容,它将失败。
我能做的最好的办法显然是将CREATE INDEX包装在命令行字符串中,从bash或python脚本运行该字符串,运行它,并检查调用程序的返回代码。
我感谢两位评论员的努力,而且我也不想任重任。