如何查找与其他顶点共享许多连接的顶点

时间:2019-03-28 11:26:53

标签: gremlin

我是gremlin api的新手,我想问一个有趣的用例。

我有一个如下图的图形

(Article1)-[refers_to]->(Company1)<-[refers_to]-(Article2) 
(Article1)-[refers_to]->(Person1)<-[refers_to]-(Article2)
(Article1)-[refers_to]->(Person2)<-[refers_to]-(Article2) 
..
(Article1)-[refers_to]->(Company1)<-[refers_to]-(Article3)
..

我的目标是确定“ Article”类型的顶点与“ Article1”类型的另一个顶点共有多个X顶点。

关于前面的示例: -我将获得{Article1,Article2}作为具有大于2(在本例中为3)公共索引的元组 -我将排除{Article1,Article3},因为该元组仅共享1个公共顶点。

对此任务有何建议?

谢谢 罗布

1 个答案:

答案 0 :(得分:0)

假设Article1 / Article2是顶点的idsrefers_to是边的label

g.V('Article1').as('source').out('refers_to').as('middle_v').in('refers_to').where(neq('source')).as('target').select('middle_v', 'target').groupCount().by(select('target')).unfold().where(select(values).is(gt(2)))