因此,我從關係數據庫中創建了Neo4j圖數據庫。圖形數據庫有大約700萬個節點和大約900萬個節點之間的關係。快速搜索大neo4j圖中的未連接節點
我現在想找到所有節點,沒有連接到具有某個標籤的節點(讓我們稱它們爲未連接的節點)。例如,我有標籤爲「Customer」和「Order」的節點(我們稱之爲頂級節點)。我想查找所有與這些頂級節點沒有關係的節點。關係不一定是直接的,節點可以通過其他節點連接到頂層節點。
我有這將解決這個問題的一個暗號查詢:
MATCH (a) WHERE not ((a)-[*]-(:Customer)) AND not ((a)-[*]-(:Order)) RETURN a;
正如你可以想像,查詢將需要很長的時間來執行,性能不錯。很可能是因爲無關的關係,並且因爲通過多少節點可以建立關係並不重要。但是,關係方向並不重要,我需要確保沒有從任何節點到頂級節點之一的路徑。
有什麼方法可以更快找到未連接的節點?請注意,數據庫非常大,並且有超過2個標記頂級節點的標籤。
非常感謝你,我覺得這是一個很好的解決方案。我想嘗試一種類似的方法,即刪除連接到頂級節點的所有節點,只留下圖中未連接的節點。你的方法雖然好得多。 另外,感謝您提及APOC程序,我不知道可以通過Cypher直接批量運行操作。 並感謝您的語法更正,我會編輯它。 我會嘗試這種方法,並在完成後給予反饋。 –