在neo4j中创建关系的有效方法

时间:2018-03-22 08:37:45

标签: python neo4j py2neo

我有一个neo4j数据库,其中填充了数千个节点,没有定义任何关系。我有一个包含节点之间关系的文件,所以我想在数据库中创建这些节点之间建立关系。我目前的做法是:

from py2neo import NodeSelector,Graph,Node,Relationship
graph = Graph('http://127.0.0.1:7474/db/data')
tx = graph.begin()
selector = NodeSelector(graph)
with open("file","r") as relations:
    for line in relations:
        line_split=line.split(";")
        node1 = selector.select("Node",unique_name=line_split[0]).first()
        node2 = selector.select("Node",unique_name=line_split[1]).first()
        rs = Relationship(node1,"Relates to",node2)
        tx.create(rs)
tx.commit()

当前方法需要对数据库进行2次查询,以获取节点以形成关系+关系创建。鉴于节点当前存在于数据库中,是否有更有效的方法?

1 个答案:

答案 0 :(得分:1)

您可以在填充关系时使用某种形式的节点缓存:

{{1}}

使用上述内容,您只需加载每个节点一次,并且只有当该节点出现在输入文件中时才会加载。