【发布时间】:2016-07-10 02:57:59
【问题描述】:
我对 neo4j 比较陌生。 我已经导入了 1200 万条记录的数据集,并在两个节点之间创建了关系。创建关系时,我忘记将属性附加到关系。现在我正在尝试如下设置关系的属性。
LOAD CSV WITH HEADERS FROM 'file:///FileName.csv' AS row
MATCH (user:User{userID: USERID})
MATCH (order:Order{orderID: OrderId})
MATCH(user)-[acc:ORDERED]->(order)
SET acc.field1=field1,
acc.field2=field2;
但是这个查询的执行时间太长了, 我什至尝试在用户和订单节点上使用索引。
MATCH (user:User{userID: USERID}) USING INDEX user:User(userID)
以后不能为关系创建新属性吗? 请告诉我,我怎样才能快速有效地进行此操作。
【问题讨论】:
-
您能否确认您已在 :User(userID) 和 :Order(orderID) 上创建了索引?如果没有这些索引,USING INDEX 根本不会改善这一点(它仍然是一个按标签扫描的节点,这会受到您拥有的数据量的影响),尽管它仍然会运行而不会出现错误。
-
也许你可以把它变成答案@InverseFalcon ?
-
是的,我已经创建了约束并且它们也是在线的。我在运行之前检查了这些。
-
听起来你目前做的一切都是正确的。可能值得对 PROFILE 进行一次更新并将其添加到您的描述中,这可能会给我们一些额外的线索。
标签: neo4j set relationship