我有一个节点(推特用户)和有向边(跟随)的嵌入式图形数据库。
我正在尝试获取指定用户(节点 U)之后的用户(集合 A)之间的所有关系。A
还有 in 中的节点与指定节点之间的关系U
。
我的查询:
START u=node:user_id(user_id={id_of_U})
MATCH p = u-->following, p2= following-[?]->u, p3 = following-[?]->()<--u
RETURN distinct rels(p),rels(p2),rels(p3)
这个查询给了我我的期望,但问题是,当指定的用户关注太多用户时,它需要很长时间。
我尝试了很多查询,上面的查询是迄今为止最好的查询。然而,我确信有更有效的方法可以做到这一点,因为当我通过遍历“A”中的所有用户来获取这些关系时,获取每个用户的所有关系(Direction.BOTH),然后过滤与“A”的关系(删除具有不属于“A”的开始或结束节点的关系),跟踪 500 人的用户只需 8 秒,而密码查询甚至不会在不炸毁我的堆的情况下失败...