顶点对等共享完全相同邻域的 Gremlin 策略
Gremlin strategy to vertex peer sharing exactly the same neighbourhood
使用 AWS Neptune,我需要找到一种遍历策略,它采用一个参考顶点,并通过沿一种边类型遍历,找到具有完全相同邻居的另一个顶点,即。不多也不少
g.V('1').as('ref_vertex').out('created').as('creations').in('created')
查找也创建了与“1”相同的东西的顶点,但它也在顶点范围内 (a) 也创建了其他东西,以及 (b) 那些没有创建“1”创建的所有内容的顶点。
g.V('1').as('ref_vertex')
.out('created').as('creations').in('created')
.not(out('created').where(neq('creations'))
只对问题 (a) 有帮助,摆脱人创造了额外的东西。
我如何继续此查询以跳过结果中的 (b) 个顶点?
g.V('1').aggregate('ref_vertex').
out('created').
sideEffect(aggregate('neighbors')). /* get neighbors of 'ref_vertex' */
in('created').groupCount().unfold(). /* group count in('created') by its occurrence times */
as('candidate_shared_neighbor_cnt_pair').
where('candidate_shared_neighbor_cnt_pair', eq('neighbors')). /* select only the vertices have the same occurrence times as 'ref_vertex' */
by(select(values)).
by(unfold().count()).
select(keys).
where(without('ref_vertex'))
使用 AWS Neptune,我需要找到一种遍历策略,它采用一个参考顶点,并通过沿一种边类型遍历,找到具有完全相同邻居的另一个顶点,即。不多也不少
g.V('1').as('ref_vertex').out('created').as('creations').in('created')
查找也创建了与“1”相同的东西的顶点,但它也在顶点范围内 (a) 也创建了其他东西,以及 (b) 那些没有创建“1”创建的所有内容的顶点。
g.V('1').as('ref_vertex')
.out('created').as('creations').in('created')
.not(out('created').where(neq('creations'))
只对问题 (a) 有帮助,摆脱人创造了额外的东西。
我如何继续此查询以跳过结果中的 (b) 个顶点?
g.V('1').aggregate('ref_vertex').
out('created').
sideEffect(aggregate('neighbors')). /* get neighbors of 'ref_vertex' */
in('created').groupCount().unfold(). /* group count in('created') by its occurrence times */
as('candidate_shared_neighbor_cnt_pair').
where('candidate_shared_neighbor_cnt_pair', eq('neighbors')). /* select only the vertices have the same occurrence times as 'ref_vertex' */
by(select(values)).
by(unfold().count()).
select(keys).
where(without('ref_vertex'))