file_A을 사용하여 생성 된 노드 세트는 각 노드의 'id'가있는 열을 포함합니다. (자바)이 사이퍼 쿼리를 사용하여 만들어졌습니다 : ID, 설명, prop2 및 prop3 : Neo4j Cypher - LOAD CSV로 특성 추가하기
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:file_A' AS line FIELDTERMINATOR '\t'
CREATE (c:Node {nodeId:line.id})
가 지금은 다른 파일 네 개의 열을 포함 (
file_B)가 있습니다. 전에 작성한 각 노드에 설명 (특성 'nodeDesc')을 지정해야합니다. 이 설명은
file_B의 '설명'열에서 읽습니다. 또한이 값을 노드의 'nodoDesc'속성에 할당하려면 'prop2'와 'prop3'모두 '1'과 같아야합니다. 이를 위해 나는이 사이퍼 쿼리 사용
이
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:file_B' AS line FIELDTERMINATOR '\t'
MATCH (c:Node)
WHERE c.nodeId=line.id AND line.prop2='1' AND line.prop3='1'
SET c.nodeDesc = line.description
file_B 각 노드에 대한 몇 가지 설명이 포함되어 있습니다,하지만 단지 그들 중 하나는 모두 'prop2'와 'prop3'동일 '1'이있다. 그리고 그 노드의 속성에 할당하려는 하나입니다.
이전 쿼리를 실행 한 후 얻을 수있는 문제는 일부 노드에 설명이 없다는 것입니다. 몇 가지 테스트를 수행 한 결과, 'id'가 인 file_B 인 'nodeId'의 MATCH는 수행하지 않지만 해당 열에서는 'nodeId'이고 'prop2'와 ' prop3 '은 1'과 같습니다.
참고 :. file_A이 함께 aprox 400.000 행을 가지고 있으며, file_B 함께 aprox 1.300.000 행이 있습니다.
감사합니다.
안녕하십니까. 답변 해 주셔서 감사합니다. 값은 모두 문자열입니다. 뒤 또는 앞의 공백이 없습니다. 사실, 일치하지 않는 파일 중 하나만 제외하고 file_B의 모든 행을 수동으로 삭제하면 두 번째 파일 인 cypher 쿼리를 실행하면 일치합니다. – Vicente
또한 일치하지 않고 붙여 넣은 행 중 하나를 file_B의 행의 첫 번째 위치로 자른 경우에도 일치합니다. 이상한 행동 ... – Vicente