Самый оптимальный запрос Гремлина для получения всех связанных вершин - PullRequest
0 голосов
/ 15 ноября 2018

Мне нужно получить все вершины, связанные любым числом связей с начальной вершиной.У меня есть рабочий запрос, но он начинает значительно замедляться после нескольких сотен ребер и сложности графика.Есть ли более эффективный способ получения связанных вершин?

g.V(id)
 .emit()
 .repeat(both())
 .until(cyclicPath())
 .unfold()
 .dedup()
 .toList()

Был замечен пример разбивки по производительности для подграфа с 202 вершинами, 259 ребрами.После запуска профиля, похоже, было выполнено 1 444 439 обходов, что заняло около 80-х годов.

Дополнительная информация. Это происходит при использовании AWS Neptune 1.0.1.0.200258.0

1 Ответ

0 голосов
/ 15 ноября 2018

Похоже, вы хотите найти только все вершины, которые каким-то образом связаны с начальной вершиной. Попробуйте этот запрос (он не включает отслеживание пути и поэтому должен быть намного быстрее):

g.V(id).emit().repeat(both().dedup())
...