计算图形数据库中多个顶点的所有可能路径
Count all possible paths in a graph database for multiple vertices
我有一个图形数据库,我需要获取所有没有任何出边的顶点并计算每个顶点有多少个顶点
例如
我有 8 个顶点 A,B1,B2,D,X,Y1,Y2,Z
D->B1->A
B2->A
Z->Y1->X
Y2->X
我想获得一个列表,其中包含 [A = 3, X = 3] 以及每个顶点的属性
为什么是 3 个?因为你可以从 D、B1 和 B2 到达 A
我目前所做的是获取一个顶点的路径数,但是对每个顶点执行该查询有点慢,所以我想要一个能给我所有信息的查询
g.V().not(outE()).repeat(inE().outV().simplePath()).emit().dedup().count().next()
看来您的查询是正确的,只需添加 group
即可:
g.V().not(outE()).group()
.by(label())
.by(repeat(inE().outV().simplePath()).emit().dedup().count())
我测试了它here。似乎按预期工作
我有一个图形数据库,我需要获取所有没有任何出边的顶点并计算每个顶点有多少个顶点
例如
我有 8 个顶点 A,B1,B2,D,X,Y1,Y2,Z
D->B1->A
B2->A
Z->Y1->X
Y2->X
我想获得一个列表,其中包含 [A = 3, X = 3] 以及每个顶点的属性
为什么是 3 个?因为你可以从 D、B1 和 B2 到达 A
我目前所做的是获取一个顶点的路径数,但是对每个顶点执行该查询有点慢,所以我想要一个能给我所有信息的查询
g.V().not(outE()).repeat(inE().outV().simplePath()).emit().dedup().count().next()
看来您的查询是正确的,只需添加 group
即可:
g.V().not(outE()).group()
.by(label())
.by(repeat(inE().outV().simplePath()).emit().dedup().count())
我测试了它here。似乎按预期工作