2016-07-24 49 views
1

我已经用Cypher创建了100万个节点,但是在创建这些节点期间,我忘记插入INDEX ON来创建索引。在现有节点上创建索引 - Neo4J

现在,我该如何为所有节点创建索引? 我试着用CREATE INDEX ON :user(userID)和我收到此消息:Added 1 index, statement executed in 32 ms.

但我希望得到一个消息说"Added 1000000 indexes ... ",因为我有节点1万元,user标签和UserID财产。

回答

2

当您执行CREATE INDEX时,您只能创建一个索引。百万条目将成为该索引内的事物。

Cypher索引建立在后台;所以当这个命令成功执行时,这意味着索引在那里,但它可能直到一段时间后才被完全构建。

See this blog post更多的细节,特别是这部分:

您创建CREATE INDEX ON架构指数:标签(属性)如CREATE INDEX ON:Person(name)。

您使用浏览器中的schema或shell中的模式列出可用模式索引(和约束)及其状态(POPULATING,ONLINE,FAILED)。

请务必确保您的操作中要使用的索引和约束条件为ONLINE,否则将不会使用它们,并且查询速度会很慢。

我的猜测是在执行CREATE INDEX之后,如果要检查索引的状态,可以在POPULATING状态下找到它。