如何使用 2.2B 节点上的集合来汇总一对带有标签的 ID?我想滚动两个 uid 的平面列表,其中的标签将它们连接起来而不重复。我在 neo4j 中有一个图表,由 10 个 ID、9 个连接 ID 和 1 个第一方 ID 组成。
我正在尝试创建一个查询,对于通过一个或多个连接 ID 连接的每一对第一方 ID,我有一个第三方 ID 正在连接它们的列表。
现在我有一个查询如下:
Match (u:User)-[]->(id)
match (id)<-[]-(u2:User)
where u <> u2 and ID(u) < ID(u2)
return u.uid,u2.uid,labels(id)
limit 100
它返回一个 u, u1, 标签列表,看起来像
u|u2|labels
uid1|uid2|["label1"]
uid2|uid3|["label2"]
uid1|uid2|["label2"]
我想做的是将列表汇总到一个集合中,例如
Match (u:User)-[]->(id)
match (id)<-[]-(u2:User)
where u <> u2 and ID(u) < ID(u2)
return u.uid,u2.uid,collect(labels(id))
limit 100
但它非常慢并且冻结了我的浏览器。我正在使用 244 GB EC2 上的 163 GB 数据集并给出
dbms.memory.heap.initial_size=150g
dbms.memory.heap.max_size=150g
dbms.memory.pagecache.size=60g