Запрос Гремлин, чтобы найти вершины, которые связаны в обоих направлениях - PullRequest
2 голосов
/ 29 апреля 2020

Гремлин: подсчитывать соединения, игнорируя ребра с параллельным ребром в противоположном направлении. В этом вопросе мне хотелось бы знать, есть ли способ найти вершины, которые соединены обоими способами из заданной вершины. Мы знаем, что dedup () существует, чтобы избежать дублирования. Но есть ли способ найти вершины с параллельными ребрами?

1 Ответ

2 голосов
/ 29 апреля 2020

Поиск вершин с параллельными ребрами - это особый случай обнаружения цикла.

Рецепт обнаружения цикла можно найти здесь .

Упрощенная версия кода, соответствующая вашему случаю:

g.V().as('a').
  out().simplePath().where(out().as('a')).
  path().dedup().by(unfold().
    order().by(id).
    dedup().fold())

пример: https://gremlify.com/8c

...