0

我在尝试使用 python 的 neo4j-driver 从密码脚本批量加载数据时遇到了这个问题。假设我有一个节点 X,我应该能够执行以下操作:

(X)-[:IS_FRIENDS]->(Y)

(X)-[:IS_FRIENDS]->(Z)

即有多个来自一个节点的相同关系类型。但是当我尝试运行一个脚本(~5k 插入,逐行)时,它会运行,但它不允许每个节点有多个相同的关系类型。如果我将密码查询直接运行到图中,这不是问题。我还发现这个(https://www.lyonwj.com/LazyWebCypher/)没有这个问题,但我需要让脚本通过python运行。该图最终丢失了 ~1k 关系。

有问题的代码:

from neo4j import GraphDatabase, basic_auth

neo_driver = GraphDatabase.driver(url, auth=basic_auth(us, pw))
neo_db = neo_driver.session()

with open(cypher_file, 'r') as f:
       for line in f:
            x = neo_db.run(line)
4

1 回答 1

0

所以这是 py2neo 的一个常见问题,所以我假设我在使用 neo4j 驱动程序时遇到了同样的问题,但事实证明我的问题是其他问题。无论哪种方式,我都设法在每次查询后通过强制排队语句来解决这个问题,这不是非常理想,但它可以作为临时解决方案。

这是通过使用以下函数完成的:

neo_db.sync()

更多信息可以在这里找到:https ://neo4j.com/docs/api/python-driver/current/transactions.html#neo4j.neo4j.Transaction.Transaction.run

于 2020-03-24T02:52:51.350 回答