在Neo4j中创建关系时TaskCanceled异常

在Neo4j中创建关系时TaskCanceled异常,neo4j,neo4jclient,Neo4j,Neo4jclient,我正在创建现有节点之间的关系。 我的图中有大约200k个节点。 通过neo4jClient创建关系时,我得到任务取消(即超时异常) 通常,TaskCancelled表示您正在通过HTTP进行查询。增加客户端中的HTTP超时(不管是什么)以帮助避免这种情况。“20万节点”是什么意思?此外,您制定查询的方式将花费大量时间,效率非常低。这实际上是在生成数据库中所有用户节点的笛卡尔积,因为您要两次匹配所有用户节点。你正在检查一个朋友ID是否在某个集合中,但这通常是你想用关系而不是属性来建模的操作。我认为

我正在创建现有节点之间的关系。 我的图中有大约200k个节点。 通过neo4jClient创建关系时,我得到任务取消(即超时异常)


通常,TaskCancelled表示您正在通过HTTP进行查询。增加客户端中的HTTP超时(不管是什么)以帮助避免这种情况。“20万节点”是什么意思?此外,您制定查询的方式将花费大量时间,效率非常低。这实际上是在生成数据库中所有用户节点的笛卡尔积,因为您要两次匹配所有用户节点。你正在检查一个朋友ID是否在某个集合中,但这通常是你想用关系而不是属性来建模的操作。我认为lakh意味着100000,所以200000是200000(只是一个快速的谷歌)@frobberoffits是正确的。您可能正在超时,因为您的查询是O(N*N),因此需要花费太长时间才能完成。你应该在一开始就用关系创建你的节点和FRIENDS_,而不是首先将关系信息存储在node properties.Yikes!200000个节点没什么大不了的,但是200000^2=400亿可能是一个问题……这个查询需要以其他方式表达!也许它应该为一个具体的用户执行?另一个选项是索引
ThirdPartyFriendId
。也许为那些“第三方朋友”创建节点和关系,然后创建快捷关系是有意义的。
MATCH (user:User)
MATCH (friend:User)
WHERE friend.ThirdPartyFriendId IN user.ThirdPartyFriendsIds
CREATE UNIQUE user-[:FRIENDS_WITH]->friend