我試圖找出一個暗號查詢,以確定一組節點,諸如一組確定如下之間的最短路徑的之間的最短路徑暗號查詢,爲組節點
MATCH (u:User) WITH u ORDER by u.score DESC LIMIT 10 RETURN u
假定的圖的形式
(:User)-[:Owns]-(:Box)
第一個限制是我只想返回匹配第一個查詢的用戶之間的路徑。
第二個限制是我不希望在用戶集中只包含一個用戶的鏈接時包含Box元素。我只對盒子元素感興趣,其中有一個匹配的用戶擁有盒子。可能有其他用戶未被選中鏈接到Box,但我對他們沒有興趣。
從某種意義上說,我認爲我正在尋求提取所有鏈接匹配用戶集的節點/路徑的子網,但我是Cypher/Neo4j的新手,無法解決這個問題。
任何指針感激地收到。
你是說你想要的最短路徑的結果爲每個排列前10名用戶? –
是的。我用表單查詢來解決這個問題:「WITH u ORDER BY u.score DESC LIMIT 10 MATCH u- [r] - >(c:Box)WITH u,c,r,count(r)as rc WHERE rc > 1 RETURN u,r,c「,換句話說,試圖只包含鏈接到多個用戶的Box,但這當然包括鏈接到不在我選擇的用戶的Boxes。然後,我想到了shortestPath,但請注意,這隻能應用於兩個已識別的節點。所以是的,我實際上試圖找出每個選擇的用戶之間的最短路徑,儘管這可能是一種無效的方式去實現它。 – esjmb
我也嘗試過MATCH p =(u) - [:Owns] - (m),m - [] - (:User)類型的結構,但是我試過讓包含Box節點的鏈接只有一個用戶選擇集。這基本上是我的問題。如何確定Box的範圍。我顯然缺少一些東西:) – esjmb