Мне нужен запрос, который перемещается вниз по определенному типу ребра, пока не достигнет вершины с заданным свойством ИЛИ не достигнет заданного расстояния от начальной вершины.
Я могу остановить этот обход, когда он достигает определенного типа вершины, но я не могу остановить его на заданной глубине/расстоянии. Должно быть что-то не так с тем, как я использую шаги «simplePath» и «count», но я не уверен, что это такое.
Вот код Java:
GraphTraversal<Vertex, TinkerGraph> traversal = g.V(start)
.repeat(__.outE("type").subgraph("subGraph").inV())
.until(
__.or(
//this line works just fine
__.has("type", "one"),
//this line doesn't seem to do what I expect,
//stop when the size of the path from "start" gets too long
__.simplePath().count().is(P.gt(3))
)
)
.cap("subGraph");
Итак, что мне нужно сделать, чтобы этот обход прекратился, когда размер пути от «стартовой» вершины до текущей вершины больше 3?