0
我有以下簡單的Neo4j圖結構:如何匹配neo4j中的可變長度模式?
(A)-[:A_TO_B]->(B)
任何(B)節點永遠只能有2個(A)節點指向它,同時任何(A)節點可以指向大致20(B)節點。
我希望能夠找到連接(start:A)和(end:A)達到指定深度的路徑,並返回路徑中的所有節點和關係。例如:
1. (start:A)-[:A_TO_B]->(B)<-[:A_TO_B]-(end:A)
2. (start:A)-[:A_TO_B]->(B)<-[:A_TO_B]-(A)-[:A_TO_B]->(B)<-[:A_TO_B]-(end:A)
3. (start:A)-[:A_TO_B]->(B)<-[:A_TO_B]-(A)-[:A_TO_B]->(B)<-[:A_TO_B]-(A)-[:A_TO_B]->(B)<-[:A_TO_B]-(end:A)
這基本上可以歸結爲這些模式:[ABA],[A BAB A],[A BABAB A] ...
以下是我的不成功的嘗試:
MATCH path=(start:A)-[:A_TO_B*0..2]->(end:A)
RETURN path;
MATCH path=(start:A)-[:A_TO_B*0..2]->(B)<-[:A_TO_B*0..2]-(end:A)
RETURN path;
MATCH path=(start:A)-[:A_TO_B*0..2]->(A)<-[:A_TO_B*0..2]-(end:A)
RETURN path;
好的,謝謝。所以0..n中的n是我們想要在任一方向看到這種關係的最大次數? – Jay
是的,確切地說。重複次數與方向正交。 –