Gremlin-如何计算具有特定属性的顶点的百分比
我试图使用一个gremlin查询来确定满足某个谓词的顶点的百分比,但在存储和传播计算值时遇到了问题 假设我要计算标签为“A”的所有顶点的百分比,这些顶点具有标签为“B”的输出边。我可以在同一查询中打印出标签为“A”的顶点数,以及标签为“B”的输出边的顶点数:Gremlin-如何计算具有特定属性的顶点的百分比,gremlin,graph-traversal,datastax-studio,Gremlin,Graph Traversal,Datastax Studio,我试图使用一个gremlin查询来确定满足某个谓词的顶点的百分比,但在存储和传播计算值时遇到了问题 假设我要计算标签为“A”的所有顶点的百分比,这些顶点具有标签为“B”的输出边。我可以在同一查询中打印出标签为“A”的顶点数,以及标签为“B”的输出边的顶点数: g.V().limit(1).project("total","withEdgeB") .by(g.V().hasLabel("A").count()) .by(g.V().hasLabel("A").match(__.as("a").
g.V().limit(1).project("total","withEdgeB")
.by(g.V().hasLabel("A").count())
.by(g.V().hasLabel("A").match(__.as("a").outE("B").inV()).dedup().count())
这给了我两个相关的值:total
和withEdgeB
。如何传播和计算这些值
理想情况下,我想要这样的东西:
g.V().limit(1).project("total","withEdgeB","percentage")
.by(g.V().hasLabel("A").count().as("totalA"))
.by(g.V().hasLabel("A").match(__.as("a").outE("B").inV()).dedup().count().as("totalWithEdgeB"))
.by(totalWithEdgeB / totalA)
因此,我的问题是,如何访问第三条
by()
语句中的值totalA
和totalWithEdgeB
?还是我完全错了 我会使用一些简单的计算。使用现代图形,查找所有创建了传出边的个人
顶点
:
gremlin> g.V().hasLabel('person').
choose(outE('created'),
constant(1),
constant(0)).fold().
project('total','withCreated','percentage').
by(count(local)).
by(sum(local)).
by(mean(local))
==>[total:4,withCreated:3,percentage:0.75]