2017-12-06 2 views
0

CSV 파일의 정보를 사용하여 서로 다른 두 그래프 간의 관계를 만들려고합니다. 나는 각 그래프의 크기가 500k +이고 다른 하나는 1.5m +이기 때문에 내가했던 것처럼 쿼리를 만들었습니다.Neo4j에서 관계를 생성하는 동안 CSV 가져 오기

Variable `row` not defined (line 4, column 16 (offset: 164)) 
"WHERE m.ASIN = row.asin AND c.customer = row.customer" 
       ^

메인 테이블의 예는 다음과 같습니다 :

{ 
    "ASIN": "0827229534", 
    "totalreviews": "2", 
    "categories": "2", 
    "title": "Patterns of Preaching: A Sermon Sampler", 
    "avgrating": "5", 
    "group": "Book" 
} 

그리고 예를 들어

LOAD CSV WITH HEADERS FROM "file:///customers_table.csv" AS row WITH row 
MATCH (m:Main) WITH m 
MATCH (c:Customers) USING INDEX c:Customers(customer) 
WHERE m.ASIN = row.asin AND c.customer = row.customer 
CREATE (c)-[:RATED]->(m) 

이 내가받을 오류는 다음과 같습니다

는 내가 가지고있는 쿼리입니다 고객의 :

그리고 고객의 테이블 CSV 내부, 나는이 :

Customer, ASIN, rating 
A2FMUVHRO76A32, 0827229534, 5 

내가 그 오류를 다시 던지고 이유를 알아낼 수 없습니다.

답변

1

쿼리의 첫 번째 WITH 절은 필요하지 않지만 WITH 절에 변수를 추가해야합니다. 그래서이 버전이 컴파일됩니다.

LOAD CSV WITH HEADERS FROM "file:///customers_table.csv" AS row 
MATCH (m:Main) 
WITH m, row 
MATCH (c:Customers) USING INDEX c:Customers(customer) 
WHERE m.ASIN = row.asin AND c.customer = row.customer 
CREATE (c)-[:RATED]->(m) 

그 이유는, 그 변수의 범위를 제한하면서 두 쿼리 부를 함께 본질 WITH 체인에서 (그리고 일부 경우에, 또한 계산을 수행 집계 등)이다. 대단히 감사합니다,

LOAD CSV WITH HEADERS FROM "file:///customers_table.csv" AS row 
MATCH (m:Main), (c:Customers) USING INDEX c:Customers(customer) 
WHERE m.ASIN = row.asin AND c.customer = row.customer 
CREATE (c)-[:RATED]->(m) 
+2

가 큰 작품 :

은 당신도 하나 하나에 두 개의 MATCH 절을 병합도, 당신은 단지 그것을 생략 할 수 있습니다 두 번째 WITH 절을 필요로하지 않으며, 그런 말로 미루어 보아. – tuckeriswilde