我想批量删除使用cypher存在的所有索引吗?我正在使用neo4j 3.4.7。
DROP INDEX ON :Label(attributename)
如果在以后的阶段中创建相同的索引,它会替换现有的索引吗?
答案 0 :(得分:3)
删除所有索引和约束的一种快速方法是使用APOC过程apoc.schema.assert,如下所示:
def gradient(x):
d = x[1:]-x[:-1]
fd = tf.concat([x,x[-1]], 0).expand_dims(1)
bd = tf.concat([x[0],x], 0).expand_dims(1)
d = tf.concat([fd,bd], 1)
return tf.reduce_mean(d,1)
该过程主要是为了确保DB具有在前两个映射中传递的索引和约束,但是第三个参数确定是否删除了其他索引和约束。在上面的查询中,前2个映射为空,因此最终结果是所有索引和约束都被删除。
答案 1 :(得分:1)
对于3.x版,您可以使用内置过程Neo4j来确定所需的索引。您可以从网络浏览器发送密码查询:
CALL db.indexes()
-列出数据库中的所有索引。
CALL db.index.fulltext.drop()
-删除指定的索引。
或
CALL db.index.explicit.drop()
-删除显式索引-YIELD类型,名称,配置
最新版本here User management for Neo4j 的所有可能的内置过程和参数
使用CIPHER可以做到:
DROP INDEX ON:labelOfNode(propertyOfNode)
创建索引::labelOfNode(propertyOfNode)