最近关注了沅陵的莲花池,整个村子都是钓鱼佬,人均up主,基本都是沾亲带故的,错综复杂,恰逢正在学习Neo4j,可以借此机会将人物关系通过图谱的方式呈现出来。

人物标签创建

首先将人物关系建立出来,利用create来创建效率实在太低了 ,所以决定采用数据导入的方式。

点击查看莲花池人物详情
去种田的向凹凸
小白兔的胡萝卜甜(冉甜)
向云朵
我是野农
画燕儿
向鹿鸣
路人阿丙X
大明星(冉蜜)
向偶然
荷塘星星
向尘俊
向星言
多肉葡萄肉多多
白叔
播音哥
三叔
丹宝
守山人阿亮

导入数据:

load csv from "file:///莲花池人物.csv" as line 
create (:Lianhuachi {name: line[0]})

最终效果图:
MATCH (n:Lianhuachi) RETURN n LIMIT 25

人物关系标签创建

莲花池人物关系(简版)
小白兔的胡萝卜甜(冉甜),丈夫,去种田的向凹凸
去种田的向凹凸,妻子,小白兔的胡萝卜甜(冉甜)
小白兔的胡萝卜甜(冉甜),女儿,向云朵
去种田的向凹凸,女儿,向云朵
画燕儿,丈夫,我是野农
我是野农,妻子,画燕儿
画燕儿,儿子,向鹿鸣
我是野农,儿子,向鹿鸣
大明星(冉蜜),丈夫,路人阿丙X
路人阿丙X,妻子,大明星(冉蜜)
大明星(冉蜜),女儿,向偶然
路人阿丙X,女儿,向偶然
多肉葡萄肉多多,丈夫,荷塘星星
荷塘星星,妻子,多肉葡萄肉多多
荷塘星星,儿子,向尘俊
多肉葡萄肉多多,儿子,向尘俊
荷塘星星,女儿,向星言
多肉葡萄肉多多,女儿,向星言
向星言,亲哥,向尘俊
向尘俊,亲妹,向星言
荷塘星星,父亲,三叔
三叔,儿子,荷塘星星
荷塘星星,表哥,守山人阿亮
守山人阿亮,表弟,荷塘星星
我是野农,亲弟,路人阿丙X
路人阿丙X,亲哥,我是野农
我是野农,钓友,去种田的向凹凸
去种田的向凹凸,钓友,我是野农
去种田的向凹凸,同村,荷塘星星
我是野农,钓友,荷塘星星
荷塘星星,钓友,我是野农
去种田的向凹凸,同村,荷塘星星

导入数据:

load csv from "file:///莲花池人物关系.csv" as line 
create (n:LianhuachiRelation {from: line[0], relation: line[1], to: line[2]})
return n.from, n.relation, n.to

最终效果:
MATCH (n:LianhuachiRelation) RETURN n.from, n.relation, n.to

借助人物关系标签,创建人物关系

match (f:Lianhuachi),(r:LianhuachiRelation),(t:Lianhuachi) where f.name=r.from and t.name=r.to
create (f)-[rr:莲花池人物关系 {relation: r.relation}]->(t)
return f.name, rr.relation, t.name

最终效果:
MATCH p=()-[r:莲花池人物关系]->() RETURN p LIMIT 25

查询人物关系

match (n:Lianhuachi {name: "向云朵"}),(m:LianhuachiRelation) where m.from='向云朵'
    return n.name, m.relation, m.to

在现有的基础上,补充人物关系

match (n:Lianhuachi{name:"大明星(冉蜜)"}),(m:Lianhuachi{name:"小白兔的胡萝卜甜(冉甜)"})
create (n)-[r:`莲花池人物关系`{relation:"亲姐"}]->(m)

match (n:Lianhuachi{name:"大明星(冉蜜)"}),(m:Lianhuachi{name:"小白兔的胡萝卜甜(冉甜)"})
create (m)-[r:`莲花池人物关系`{relation:"亲妹"}]->(n)