我有一组使用file_A创建的节点,其中包含一个带有每个节点的“id”的列。它是使用这个 Cypher 查询(在 Java 中)创建的:
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:file_A' AS line FIELDTERMINATOR '\t'
CREATE (c:Node {nodeId:line.id})
现在我有另一个文件(file_B),它包含四列:id、description、prop2 和 prop3。我需要为之前创建的每个节点分配一个描述(属性“nodeDesc”)。这些描述将从file_B的“描述”列中读取。此外,要将此值分配给节点的“nodoDesc”属性,“prop2”和“prop3”都必须等于“1”。为此,我使用了这个 Cypher 查询:
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”。这就是我要分配给节点属性的那个。
执行上一个查询后我得到的问题是某些节点没有描述。在执行了几次测试之后,我已经验证它不会与 file_B 的列 'id' 匹配 'nodeId' ,但在该列中它是 'nodeId' 和 'prop2' 和 'prop3'等于 1'。
注意:file_A 大约有 400.000 行,而file_B 大约有 1.300.000 行。
谢谢。