我想在两个节点之间找到一定长度的路径 - 但我不知道涉及哪些关系。教程和示例似乎要求我知道我想要使用什么类型的关系。 E.g。
MATCH (martin { name:"Martin Sheen" })-[:ACTED_IN*1..3]-(x)
RETURN x
我想问一下图表:
MATCH (martin { name:"Martin Sheen" })-[:3..3]-(x)
RETURN x
但是Neo4J似乎挂了(我有600,000个节点/ 1.3米的关系)。如果我没有关于关系的信息,我怎样才能以高效的方式在两个节点之间找到一定长度的路径?
由于
答案 0 :(得分:3)
首先,这并不奇怪它真的很慢。从Neo4j2.0开始,出于性能原因,几乎必须使用标签。
因此,请确保至少使用标签+索引属性来匹配您的第一个节点。
其次,您可以在不知道关系类型的情况下匹配固定长度的路径。
假设您的“Martin Sheen”节点有一个标签Person:
为人物/名称创建索引:
CREATE INDEX ON :Person(name);
匹配此人和路径
MATCH p=(martin:Person {name:"Martin Sheen"})-[*3..3]->(x)
RETURN p