2014-05-14 4 views
1

경로를 새 관계로 결합/병합하려고합니다. 문제는 저장하는 데 관심이 없으며 대신 사이퍼 쿼리의 결과로 반환한다는 점입니다. 나는이 같은 임시 관계를 만들 수있는 방법사이퍼 임시 관계

(a)-[:CALLS_METHOD]->(b)-[:RETURNS_TYPE]->(c) 

:

나는 이런 식으로 뭔가가 있다고 가정하자 있도록, 해당 특정 쿼리의 결과를

(a)-[:DEPENDS_ON]->(c) 

을 나는 돈 그것을 보관해야합니다. 왜냐하면 나는 단지 a에서 c으로의 종속성에만 관심이 있고 그 의존성에 대한 세부 사항이 아니기 때문입니다.

+0

어쨌든 관계를 저장하지 않으시겠습니까? 대부분의 경우 성능을 저하시키지 않습니다. – BtySgtMajor

+0

http://jqassistant.org에서 기본 데이터를 개념 쿼리의 일부로 집계하는 "가상"관계를 반환하는 방법을 제공합니다.이 쿼리는 graphML에 렌더링되어 개념에 사용됩니다. Gephi 또는 yED –

+0

그래프가 포함 된 소프트웨어 분석에 관심이있는 경우 https://groups.google.com/forum/#!forum/graph-software-analytics –

답변

1

존재하지 않는 데이터베이스에서 관계를 반환 할 수 없습니다. 쿼리의 목적은 존재하는 것을 반환하는 것입니다.

아마 당신이 관심있는 것은 관계가 아닌 유추 된 쌍입니다. 같은 뭔가 :

MATCH (a)-[r:CALLS_METHOD|RETURNS_TYPE*]->(b) 
RETURN a, "depends on", b 

귀하의 다른 대안은/실현 관계를 저장하고 쿼리하는 것입니다

MATCH (a)-[r:CALLS_METHOD|RETURNS_TYPE*]->(b) 
CREATE a-[newRel:DEPENDS_ON]->b 
RETURN newRel; 

을하지만 그것을 만드는 부작용이있다.

+0

첫 문장에 동의하지 않을 것입니다. OP는 검색된 관계가 데이터베이스에 존재하지 않는다는 사실을 알고 있습니다. 그러나 시각적 목적을 위해 즉석에서 유추 관계를 만드는 것이 완벽하게 잘된 것처럼 보입니다. 현재 비슷한 문제가 있으며 해결 방법이라는 문제에 대한 진정한 해결책이 있습니다. – Ahmedov