Neo4j:在两个节点之间查找简单路径需要很多时间
Neo4j:即使在使用上限(*1..4)之后,在两个节点之间查找简单路径也需要大量时间。我不想使用allShortestPath或shortestPath,因为它不会返回所有路径Neo4j:在两个节点之间查找简单路径需要很多时间,neo4j,cypher,Neo4j,Cypher,Neo4j:即使在使用上限(*1..4)之后,在两个节点之间查找简单路径也需要大量时间。我不想使用allShortestPath或shortestPath,因为它不会返回所有路径 Match p=((n {Name:"Node1"}) -[*1..4]-> (m {Name:"Node2"})) return p; 有没有加快速度的建议?如果有很多节点,请尝试创建索引,这样neo4j DB引擎就不必搜索每个节点来找到具有正确名称属性值的节点 我假设,在您的示例中,n和m节点实际上是相同的
Match p=((n {Name:"Node1"}) -[*1..4]-> (m {Name:"Node2"})) return p;
有没有加快速度的建议?如果有很多节点,请尝试创建索引,这样neo4j DB引擎就不必搜索每个节点来找到具有正确
名称
属性值的节点
我假设,在您的示例中,n
和m
节点实际上是相同的节点“类型”。如果这是真的,那么:
n
和m
类型相同)添加一个标签(我称之为“X”)。您可以使用以下命令将“X”标签添加到由变量n
表示的节点。您希望在其前面加上适当的匹配子句:
集合n:XX
标签在节点的Name
属性上创建索引,如下所示:
在以下位置创建索引:X(名称)如果您执行上述操作,那么您的查询应该会更快。您需要所有路径还是只需要一条路径?如果是后者,返回时只需使用
LIMIT 1
。不,我需要所有可能的路径,否则我本可以使用最短路径node1和Node2,但它们不是同一类型的,但我会尝试您的建议,在节点上创建标签和索引。是的,这使它非常快。谢谢你,山姆。当然欢迎你。如果你认为它解决了你的问题,请考虑接受我的回答。兄弟,你真棒。谢谢