尽管使用了索引,简单的查找仍需要几分钟

时间:2019-11-04 07:09:08

标签: indexing neo4j

我有一个相当大的图形(约6亿个节点,35亿条边)导入了neo4j。该图也非常密集(边缘中位数大约为10)。尽管我不确定这是否会影响性能。

对于一种类型的节点HtmlT m a-大约有2亿个这种类型的节点-我想查询一个特定名称,该名称存储在属性(:Authors)中。这是(非常简单的)查询:

normalizedName

正如人们可能期望的那样,此查询需要很长(几分钟)的时间才能执行。尽管我没有明确保证此属性的唯一性,但我仍然尝试在该属性上创建索引,也没有来自neo4j的投诉。之后,由于索引中O(1)的复杂性,我希望上面的查询将以ms为单位执行。不幸的是,查询仍然需要几分钟。

我在做什么错了?

1 个答案:

答案 0 :(得分:2)

确保已将索引设置为

CREATE INDEX ON :AUTHOR(normalizedName)

请注意,您将需要在要使用索引查找的每个属性上设置索引。这也按节点标签过滤,即如果您在一个节点上使用多个标签并需要查找索引,则需要为每个标签设置一个标签,例如如果您有:Person:Author,则还需要设置:

CREATE INDEX ON :Person(normalizedName)