【发布时间】:2015-04-09 17:07:41
【问题描述】:
我仍在尝试解决我的速度问题(此处显示:Cypher MATCH query speed)。
我注意到的一件事是,当我导入具有唯一约束的数据时(由以下证明)。
neo4j-sh (?)$ 在 :Person(username) 上创建索引;
QueryExecutionKernelException:标签“人员”和属性“用户名” 对它们定义了唯一约束,因此索引已经 已创建与此匹配。
当我尝试在 shell 中查看索引时,我得到以下信息:
neo4j-sh (?)$ 索引 --indexes
节点索引:关系索引:
自动生成的索引不应该显示吗?如何验证唯一约束实际上是在索引用户名?
主要问题(如上面的链接所示)是下面的简单查询需要 36 秒(急切调用),而切换到非急切调用需要两倍的时间。
USING PERIODIC COMMIT 15000
LOAD CSV WITH HEADERS FROM "file:d:/messages.csv" AS line
MATCH (a:Geotagged { username: line.sender }) - [r:MSGED] -> (b:Geotagged { username: line.recipient })
RETURN NULL;
注意,这不包括我最初尝试使用的 SET 调用,我删除了它,仅 MATCH 就永远占用了。
此外,我还将页面缓存增加到了我应该需要的几倍,并且没有看到任何变化。
编辑 1 标有“地理标记”的节点也标记为“人员”。所有节点都是“人”,有些节点恰好也被“地理标记”。
【问题讨论】: