[英]how to find the shortest relationship between the two nodes in neo4j?
我的圖表中有多個關系。 我想找到兩個節點之間最短的關系。
我有兩種類型的節點:1.person 2.Company
以及這些節點之間的許多關系,例如電話、電子郵件、地址等。
我試着做:
MATCH (r)-[q:*1..3]-(p) return type(q)
但它給出了一個錯誤信息:
Invalid input '*': expected whitespace or a rel type name (line 1, column 14 (offset: 13))
我也試過MATCH (r)-[*]-(p) return *
但它花費了無限的時間。 我還嘗試通過索引進行查詢以加快流程,但仍然沒有運氣。
請讓我知道如何找到節點之間的最短路徑。
此查詢中有 2 個錯誤:
MATCH (r)-[q:*1..3]-(p) return type(q)
q
用於可變長度路徑模式,因此其值將是關系列表。這是一個查詢,它實際上應該返回您的查詢似乎試圖返回的內容:
MATCH ()-[qs*..3]-()
UNWIND qs AS q
RETURN TYPE(q)
現在,如果您想找到 2 個節點之間的最短路徑(如您的問題主題所示),請參閱 @DaveBennett 的回答(假設他解決了我在對他的回答的評論中提到的問題)。
你有沒有征求其關於Neo4j的Cypher支架手冊每機會shortestPath
?
https://neo4j.com/docs/cypher-manual/current/clauses/match/#query-shortest-path
如果你想找到最短路徑......
MATCH path=shortestPath((r:person {name: 'Sandeep Garg'})-[q*1..3]-(p:Company {name: 'Gopal Prjapati'}))
RETURN path
如果你想在最短的路徑上找到房地產
MATCH path=shortestPath((r:person {name: 'Sandeep Garg'})-[q*1..3]-(p:Company {name: 'Gopal Prjapati'}))
RETURN realtionships(path)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.