2017-03-20 55 views
0

我有蟒蛇余弦相似矩阵,我想使基于该值的关系。 我的查询是如何从python矩阵中快速创建neo4j中的关系?

MATCH (n:Product {id : {id}}),(m:Product {id:{id2}}) MERGE (n)-[r:SIM]-(m) SET r.weight={w}

,我做这个

for i in range(x): 
    for j in range(x): 
     make_relation(i,j,w) 

插入的关系是否有插入的关系比嵌套循环,因为它花的时间太长了更快的方法?

回答

1

而不是循环和执行,使用循环来填充列表,所以我们可以使用解开列表和在一次操作中所有列表项中执行的把戏。

让您的密码查询中的一个参数成为字典列表(让我们将其称为'rowList'作为参数映射中的关键字),并使用您的double-for循环为idid2预填充列表和w

你的Cypher可以是类似的查询,如你的描述,但我们可以改变它使用您在列表过去了。您将列表放到行中,并一次创建所有关系。这成为单个操作而不是每对一个操作。

UNWIND {rowList} as row 
MATCH (n:Product {id : {row.id}}),(m:Product {id:{row.id2}}) 
MERGE (n)-[r:SIM]-(m) 
SET r.weight={row.w} 
+0

谢谢您的回答。它给了我另一种方法。创建列表后,我用csv编写它。然后,使用定期提交,我加载csv并使用上面的查询在单个密码中建立关​​系 –