【发布时间】:2016-08-09 14:56:33
【问题描述】:
当您要求 Neo4j 创建一个已经存在的索引时,它不会抛出异常,这对我的目的来说似乎很好。
session.run("CREATE INDEX ON :User(email)");
问题 1:
但是 neo4j 是如何在后台处理这个问题的呢?它是删除索引然后重新创建它,还是因为索引已经存在而完全忽略查询?
我想知道,因为我有一些 CRUD 操作,并且我想在创建节点时为其定义架构,这意味着调用“CREATE INDEX”等等。缺点是这意味着对于创建的每个新节点都会进行冗余调用以创建索引,如果索引已经存在则忽略它们就可以了。
问题 2:
我注意到即使没有带有标签用户的节点存在以下工作(这意味着我可以在关联节点之前创建标签和索引)。
CREATE INDEX ON :User(email)
我是 Neo4j 的新手,并且习惯使用 RDBMS 世界,您无法在不存在的列上创建索引。我是否认为在创建具有这些标签和属性的节点之前创建索引和标签不会导致任何不可预见的问题?
【问题讨论】: