Neo4j 具有3个或更多节点的最短路径
我正试图用Neo4J执行一个密码查询。 我已经在两个节点之间执行了最短路径,但我想知道是否可以使用更多节点执行 具有2个节点的Ex:Neo4j 具有3个或更多节点的最短路径,neo4j,cypher,Neo4j,Cypher,我正试图用Neo4J执行一个密码查询。 我已经在两个节点之间执行了最短路径,但我想知道是否可以使用更多节点执行 具有2个节点的Ex: MATCH (personA:Person { contactId: 1000073595058 }),(personB:Person { contactId: 1000295524418 }), p = shortestPath((personA)-[*..30]-(personB)) RETURN p 具有3个节点的Ex: MATCH (personA:P
MATCH (personA:Person { contactId: 1000073595058 }),(personB:Person { contactId: 1000295524418 }), p = shortestPath((personA)-[*..30]-(personB)) RETURN p
具有3个节点的Ex:
MATCH (personA:Person { contactId: 1000073595058 }),(personB:Person { contactId: 1000295524418 }),(personC:Person { contactId: 1000331998948 }), p = shortestPath((personA)-[*..30]-(personB)-[*..30]-(personC)) RETURN p
但当我执行时,返回一个异常。如何执行此操作?您只能在两个节点之间
匹配shotestPath
。您必须拆分查询:
MATCH (personA:Person { contactId: 1000073595058 }),
(personB:Person { contactId: 1000295524418 }),
(personC:Person { contactId: 1000331998948 })
WITH personA, personB, personC
MATCH p = shortestPath((personA)-[..30]-(personB)
MATCH p2 = shortestPath((personB)-[..30]-(personC)
RETURN p, p2
根据您希望对结果执行的操作,您可以使用聚合函数,例如从两条路径获取所有节点:
...
RETURN nodes(p)+nodes(p2)
能否添加引发的异常?最短路径(…)需要包含单个关系的模式(第1行第150列(偏移量:149))此查询有效!匹配(personA:Person{contactId:1000073595058}),(personB:Person{contactId:1000295524418}),(personC:Person{contactId:1000331998948})与personA,personB,personC匹配p=shortestPath((personA)-[…30]-(personB)匹配p2=shortestPath((personB)-[…30]-(personC)返回p,p2