2016-09-20 3 views
1
MATCH PATHS=shortestpath((a:Place{Name:"Mysore"})- 
     [r:IS_LOCATED_AT|CARRIES|BELONGS_TO*]-(b:Place{Name:"Bangalore"})) 
    WHERE ANY (n IN nodes(PATHS) 
     WHERE 
    ("Network" IN labels(n) or n.Name='mplscore.net' AND n.Name="IP_MPLS_Layer-11") 
      OR 
     ("Equipment" IN labels(n) or n.Name='Chassis111')) 

     RETURN a,r,b 

언급 관계 필터와 제shortestpath shortestpath 메소드를 호출하여 관계 필터


1) : 그것은 한 모든 경로 filering된다 R BELONGS_TO * IS_LOCATED_AT | | 운반] IS_LOCATED_AT, CARRIES, BELONGS_TO. IS_LOCATED_AT, CARRIES, BELONGS_TO (이러한 세 가지 관계는 모두 경로에 있어야 함) 필 터링에만 고려되는 경로가 있음을 확인했습니다.

BELOW 관계 필터 조합이있는 경로는 삭제됩니다. 그들은 필터링 된 경로 중

a)CARRIES,IS_LOCATED_AT 
    b)BELONGS_TO,IS_LOCATED_AT 
    c)BELONGS_TO,CARRIES 
    d)IS_LOCATED_AT 
    e)CARRIES 
    f)BELONGS_TO 

2) 을 폐기 왜 우리는 최단 경로를주고, 설명이 필요합니다.

관계 조합 누군가가 사전에이

감사에 퇴고를 제공

답변

1

잠재적 인 이유 일 경우 행복 할 것입니다 짧은 path.I을 찾기 위해 고려되지 위에서 언급 한 이유는 누군가가 정교한 : f을 통해 경로 a 할 경우 WHERE 절을 충족시키지 못하면 SHORTESTPATH은이를 무시합니다.

잠재적 이유 2 : WHERE 절에 논리적 오류가 있습니다. 이 조각 : 노드의 Name 속성이 동시에 두 값을 가질 수 없기 때문에

n.Name='mplscore.net' AND n.Name="IP_MPLS_Layer-11" 

항상 FALSE로 평가됩니다. 결과적으로 사용자의 WHERE 절이 논리적으로 다음과 같이 줄어 듭니다.

"Network" IN labels(n) OR "Equipment" IN labels(n) OR n.Name='Chassis111' 
관련 문제