简单的密码查询不合理地慢 - 我做错了什么?

时间:2014-10-06 11:33:25

标签: neo4j cypher

我正在尝试将所有关系连接到给定节点,该节点也具有名为“name”的属性。这是我的密码:

MATCH (starting { number:'123' })<-[r]-() WHERE HAS(r.name) RETURN r

这是难以想象的慢!即使只有很少的返回值,也需要neo4j年龄来计算,并且没有那么多关系连接到节点(最多1到10个关系)。

我在这里做错了吗? 其他的塞浦路斯工作正常。

谢谢!

1 个答案:

答案 0 :(得分:3)

如果你没有告诉Neo关于你的图形结构,那么一个节点上的关系数量可能不太相关。

首先使用标签,然后使用索引。以下内容将在属性YourLabel上使用标签number

CREATE INDEX ON :YourLabel(number)

然后点击索引以启动查询,并在您的关系中使用类型。

MATCH (:YourLabel{number:'123'})<-[r:RELATIONSHIP_TYPE]-() 
WHERE HAS (r.name)
RETURN r

现在,不是使用值123扫描数字属性的每个节点,而是只读取一个索引。

要使用标签,请像这样创建节点(将添加到索引中):

CREATE (s1:YourLabel{number:"1"})