Следующий вопрос переполнения стека
Как повысить производительность по кратчайшему пути с помощью Gremlin?
показывает, как найти кратчайший путь от начальной одиночной начальной вершины с идентификатором 687
до конечной вершины с идентификатором 1343
и делает это эффективно, гарантируя, что пути не повторяются с использованием store
, without
, и aggregate
g.V(687).store('x').repeat(out().where(without('x')).aggregate('x')).until(hasId(1343)).limit(1).path()
Я хотел бы выполнить тот же запрос с тем же уровнем эффективности, однако мне нужны все кратчайшие пути от нескольких начальных вершин с одинаковой меткой до одной и той же конечной вершины, например, это будет выглядеть примерно так (хотя это не работает)
g.V().hasLabel('label').store('x').repeat(out().where(without('x')).aggregate('x')).until(hasId(1343)).limit(1).path()
Я пробовал несколько конструкций с двумя повторениями в утверждении, но не смог получить независимый store('x')
для каждой начальной вершины. Я также использую платформу AWS Neptune
, поэтому она ограничивает использование Gremlin, где не допускаются циклы / сценарии. Все запросы gremlin должны начинаться с g.
и состоять из команд, связанных вместе с .
https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-differences.html