最短路徑查詢返回許多路徑而不是一條路徑。最短路徑查詢返回許多路徑而不是一條路徑
MATCH PATHS=shortestPath((a:Endpoint{ nodeName: 'BRS-PE-SR7-X03B' }) -[*]-(b:Endpoint{ nodeName: 'LDN-PE-SR7-X03C' }) RETURN PATHS
任何人都可以解釋它是如何通過它計算路徑並返回以下場景的最短路徑。
我的理解是它應該只返回一條路徑,對嗎?
最短路徑查詢返回許多路徑而不是一條路徑。最短路徑查詢返回許多路徑而不是一條路徑
MATCH PATHS=shortestPath((a:Endpoint{ nodeName: 'BRS-PE-SR7-X03B' }) -[*]-(b:Endpoint{ nodeName: 'LDN-PE-SR7-X03C' }) RETURN PATHS
任何人都可以解釋它是如何通過它計算路徑並返回以下場景的最短路徑。
我的理解是它應該只返回一條路徑,對嗎?
SHORTESTPATH
函數查找兩個特定節點之間的單一最短路徑。
如果多個Endpoint
節點可以具有相同的值nodeName
,這可以解釋爲什麼您獲得多個最短路徑。
如果這是你的結果的原因,由該查詢返回的2個字的至少一個應該超過1:
MATCH
(a:Endpoint{ nodeName: 'BRS-PE-SR7-X03B' }),
(b:Endpoint{ nodeName: 'LDN-PE-SR7-X03C' })
RETURN COUNT(DISTINCT a), COUNT(DISTINCT b);
由REST API提供的最短路徑算法提供了所有最短之間的路徑兩個節點。這意味着如果在多條路徑中最小跳數相同,那麼您將獲得所有這些最短路徑。 (https://neo4j.com/docs/rest-docs/current/#rest-api-find-all-shortest-paths)。
感謝cybersam.I將檢查節點是否具有相同的值 – raj