2016-05-16 77 views
0

我在非常大的(8.2M节点,63M属性)neo4j db实例上创建索引。neo4j没有在大型数据集上创建索引

CREATE INDEX ON :Article(lowerTitle)

它需要可忽略的量的时间,以发出命令,并且索引(大概)开始处理。

我有一个100GB的最大Java堆,和40个核心(这是一个大型服务器)。无论如何,它都是一台硬盘。

在发布索引命令之后,我的核心使用率高达非常高效的使用率。大约20秒后,它降低到几乎不使用处理器功率,但大约90%的MEM。

我已经让它运行了3个小时,并且索引仍然没有创建(或者至少没有简单的MATCH查询对单个参数的改进,平均约16秒)。

MATCH (arti {lowerTitle: "quantum mechanics"}) RETURN arti

,这是否合理?什么花了这么久?难道我做错了什么?

注:我也注意到,我的总数据库大小(38.02GB)还没有超过3个小时的

回答

1

增加就证明你的指数是在网上,问题在浏览器中:schema命令。

您应该看到您的索引状态。

  • ONLINE表示OK
  • 填充意味着它仍然填充指数
  • 失败的手段,那么,失败

,因为你不使用标签您的查询将永远不会跑得快,因此不会使用索引,将其更改为:

MATCH (arti:Article {lowerTitle: "quantum mechanics"}) RETURN arti