2017-03-04 9 views
0

저는 Neo4j를 처음 접하고 Neo4j에서 연습하고 있습니다. 이 같은 그래프에Neo4j가 특정 그래프를 만들기 위해 CSV를 가져옵니다.

product,material 
aa,bb 
aa,cc 
cc,bb 
dd,aa 
내가 N4j로 가져 "에서"이라는 관계를 만들고 싶어

이 원하는 :

나는 헤더 csv 파일을 graph 가 처음에 나는 그것이 생각 꽤 쉽고 나는 2ds를 위해 고생하고 포기한다. 나는 도움이 필요하다. 내 코드는 여기에 있습니다 :

load csv with headers from"files:\\test.csv" as file 
merge (p:product {id:file.product}) 
merge (m:material {id:file.material}) 
create (p)-[:from]->(m) 

및 결과는 여기에 있습니다 : graph2

그래서이

가 1.How 나는 "AA"CREAT이 하나 개의 노드를 만들 수 있습니까?

2. 숫자 대신 노드 표시 "aa" "bb"를 어떻게 만들 수 있습니까?

3.btw, n4j 안내서에서 "가져 오기 도구"와 "로드 CSV"의 차이점은 무엇입니까?

답변

1

문제는 생성 쿼리에 다른 레이블을 사용하고 있다는 것입니다.

CSV의 2 번 줄은 id가 'cc'인 물질 노드를 만듭니다. 3 번 줄에서 'cc'를 ID로 사용하는 경우 : 제품 노드를위한 것입니다. 3 번 줄에서 실행할 때, id : cc가있는 제품 노드가 없습니다 (id가있는 물질 노드가 있지만 레이블이 다르므로 일치하지 않음) 새로운 : 제품 노드가 만들어집니다.

마찬가지로 'aa'입니다. CSV의 1과 2 행은 a : 제품 노드 'aa'를 병합하지만 4 행에서는 id가 a : material 노드에 대한 것입니다. 다시 말하지만, 레이블은 다르기 때문에 이전에 만든 노드를 다시 사용하지 않습니다.

원하는 그래프를 얻기 위해 모든 ID가 동일한 노드를 참조하는 경우 병합의 레이블도 동일해야합니다.