我使用的Neo4j,試圖找到未連接到特定節點「a」的任何節點。我到目前爲止的查詢是:Neo4j的暗號找到兩個不相交的節點
MATCH p = shortestPath((a:Node {id:"123"})-[*]-(b:Node))
WHERE p IS NULL
RETURN b.id as b
因此,它試圖找到a和b之間的最短路徑。如果找不到路徑,則返回該節點的ID。然而,這導致我的查詢到幾分鐘運行,當它運行的內存,然後崩潰。我在想,如果這個方法會甚至工作,如果有一個更有效的方法?任何幫助將不勝感激!
編輯:
MATCH (a:Node {id:"123"})-[*]-(b:Node),
(c:Node)
WITH collect(b) as col, a, b, c
WHERE a <> b AND NOT c IN col
RETURN c.id
所以山口(收集(b))的包含連接到每一個節點,因此,如果c是不是在COL則C是未連接到?
謝謝!我無法使用APOC程序。這看起來是否正確嗎? (見編輯) – ThatOneGuy
我編輯我的回答與應該解決您的備用查詢的查詢。請記住,Cypher支架長度可變的比賽不會像APOC的subgraphNodes高效()過程,因爲Cypher支架有興趣唯一路徑,所以這個查詢仍然可以在大圖超時。 – InverseFalcon