30

가변 길이 관계 탐색

Cypher 패턴 매칭 & 관계 탐색

1촌, 2촌, 3촌... N촌까지

이 실습의 목표

가변 길이 관계는 그래프 DB만의 강점입니다. SQL에서는 JOIN 개수를 미리 알아야 하지만, Cypher에서는 범위만 지정하면 됩니다.

가변 길이 관계 문법 총정리:

문법의미예시
*모든 길이 (위험!)0~무한
*N정확히 N홉*3 = 3홉
*N..MN~M홉*2..5 = 2~5홉
*..M0~M홉*..4 = 0~4홉
*N..N홉 이상*3.. = 3홉~

핵심 원칙: 항상 상한(M)을 설정하세요. 없으면 성능 폭발!

실습 과제

샘플 데이터 준비

에디터 로딩 중...

1. 고정 길이 관계

에디터 로딩 중...

2. 가변 길이 관계

에디터 로딩 중...

3. 경로 변수 사용

에디터 로딩 중...

4. 모든 최단 경로

에디터 로딩 중...

5. 방향 무시 탐색

에디터 로딩 중...

6. 여러 관계 타입에 대한 가변 길이

에디터 로딩 중...

성능 주의사항 (매우 중요!)

에디터 로딩 중...
에디터 로딩 중...

PROFILE로 성능 확인하기

에디터 로딩 중...

주의사항

실수문제해결
* 상한 없이 사용성능 폭발 (지수적 증가)*..10 상한 설정
순환 경로 무시무한 루프Neo4j는 자동 중복 방지하지만, 명시적 종료 조건 권장
DISTINCT 누락중복 결과 다수 반환DISTINCT 추가
방향 무시(-) + 가변 길이탐색 공간 2배 증가방향 명시 권장
shortestPath에 WHERE 조건일부 조건은 shortestPath 내부에서 지원 안 함외부 WHERE 사용
에디터 로딩 중...