一、问题出现背景
在社交网络中存在互相关注关系,表示两人就存在好友关系。在具体的图谱构建中,如果存在这种大量的双向关注关系,会极大的影响图的遍历性能。所以需要对这种结构的图进行优化。
二、构建好友关系
#将双向关注关系构建为好友关系
MATCH (n)-[:关注]->(m)-[:关注]->(n) WHERE size((n)-[:好友]-(m))=0 MERGE p=(n)-[r:好友]->(m) SET r.update_time_mills=1583894558923 RETURN count(p) AS count
二、删除双向关注关系
# 1.在路径中标记出双向关注关系,并设置不同的属性进行区分
MATCH p=(n)-[r1:关注]->(m)-[r2:关注]->(n) SET r1.markFcous=1,r2.markFcous=2;
# 2.删除markFcous=1或者markFcous=2的关注关系即可
MATCH (n)-[r:关注]-(m) WHERE r.markFcous=2 DELETE r;