как найти вершины, которые имеют много связей с другими вершинами - PullRequest
0 голосов
/ 28 марта 2019

Я новичок в 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", которые имеют более X вершин общего с другой вершиной типа "Article1".

Относительно предыдущего примера: - Я бы получил {Article1, Article2} в виде кортежа, который имеет большечем 2 (в данном случае 3) общего индекса - я бы исключил {Article1, Article3}, потому что у этого кортежа есть только 1 общая вершина.

Есть предложения для этой задачи?

Спасибо, Роб

1 Ответ

0 голосов
/ 28 марта 2019

Предположим, что Article1 / Article2 - это ids вершин, refers_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)))
...