4
我导入了一个包含数千个设备的表格。然后导入另一张包含大约20种类型设备的表格。如何避免密码查询中的笛卡尔积,并仍然在对象之间创建链接?
当我在下面编写密码查询来关联它们时,Neo4j警告了我一个笛卡尔积。有没有更好的方法来创建关联?我应该在CSV导入期间完成这项工作吗?
MATCH (te:Equipment_Type),(e:Equipment)
WHERE te.type_id = e.type_id
CREATE (e)-[:TYPE_OF]→(te)
更新
我tryed什么布赖恩sugested,CSV导入过程中,和工作就像一个魅力。
- 首先导入设备类型;
- 然后在设备上创建和索引(type_id);
- 修改了在CSV导入期间搜索的代码。
从Neo4j的控制台:
新增100812标签,创造了100812个节点,设置属性414307, 创建100812个关系,在33902毫秒执行的语句。
验证码:
CREATE INDEX ON :Equipment(type_id)
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "http://localhost/Equipments.csv" AS row
MERGE (e:Equipment {eqp_id: row.eqp_id, name: row.name, type_id: row.type_id})
WITH e, row
MATCH (te:Equipemnt_Type)
WHERE te.type_id = row.type_id
CREATE (e)-[:TYPE_OF]->(te)