我已经使用Cypher创建了1百万个节点,但在创建这些节点期间,我忘记插入INDEX ON
来创建索引。
现在,如何为所有节点创建索引?
我尝试使用CREATE INDEX ON :user(userID)
并收到了此消息:Added 1 index, statement executed in 32 ms.
但我希望收到一条消息"Added 1000000 indexes ... "
,因为我有100万个带有user
标签和UserID
属性的节点。
答案 0 :(得分:2)
执行CREATE INDEX
时,只创建一个索引。百万条目将成为该指数内的事物。
Cypher索引是在后台构建的;所以当这个命令成功执行时,这意味着索引就在那里,但它可能在一段时间后才完全构建。
See this blog post了解更多细节,特别是这一部分:
使用CREATE INDEX ON:Label(property)创建模式索引,例如CREATE INDEX ON:人(姓名)。
列出可用的架构索引(和约束)及其状态(POPULATING,ONLINE,FAILED),其中包含:浏览器中的架构或shell中的架构。
始终确保您要在操作中使用的索引和约束是ONLINE,否则它们将不会被使用,并且您的查询将会很慢。
我的猜测就是在你执行CREATE INDEX
之后,如果要查看索引的状态,你会发现它处于POPULATING状态。