dynamodb-titan основан на TinkerPop 3.x и в TinkerPop 3.x Gremlin не связан с Groovy. Gremlin в Groovy в основном эквивалентен Java. Вы не уйдете с Titan (или TinkerPop), если вы не изучите Gremlin, поскольку это единственный способ запросить график.
Для того, чтобы пройти путь обхода, необходимо использовать шаг path(). Чтобы продемонстрировать, что я буду использовать консоль Gremlin, и, хотя она оценивается с помощью Groovy, я могу заверить вас, что вы можете скопировать и вставить этот код в свой Java-проект, и он будет работать одинаково хорошо там.
Во-первых, я создаю игрушка график, который я продемонстрирую с:
gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
Далее я пишу обхода, который находит единственную вершину с идентификатором 1 - это будет вершина, мы будем использовать для открыть «путь радиации» вы ищете:
gremlin> g.V(1)
==>v[1]
Затем мы пересекаем на из края в смежных вершин от 1:
gremlin> g.V(1).out()
==>v[3]
==>v[2]
==>v[4]
, а затем мы делаем это снова:
gremlin> g.V(1).out().out()
==>v[5]
==>v[3]
Теперь, если мы хотим, чтобы увидеть тот путь, пересекающие потребовалось, чтобы получить там мы просто делаем:
gremlin> g.V(1).out().out().path()
==>[v[1],v[4],v[5]]
==>[v[1],v[4],v[3]]
и есть все вершины расходящиеся от одна вершина, являются полноправными в двух шагах от 1.
Если вы не знаете длину ходьбы от начальной вершины, то вы можете использовать repeat():
gremlin> g.V(1).repeat(out()).until(outE().count().is(0)).path()
==>[v[1],v[3]]
==>[v[1],v[2]]
==>[v[1],v[4],v[5]]
==>[v[1],v[4],v[3]]
Спасибо, stephen mallete, вот что я искал. Как бы то ни было, похоже, проблема. Ошибка .out() должна повторяться до тех пор, пока она не закроет все ребра, которые могут быть связаны? как я знаю, когда прекратить цепочку .out()? Хотел бы я дать вам щедрость. – Ram
Обновлен мой ответ ... снова, который должен перевести непосредственно в java. Обратите внимание, что вам необходимо [статически импортировать] (http://tinkerpop.apache.org/docs/current/tutorials/the-gremlin-console/#static-imports) класс '__' для этого, чтобы он работал (консоль делает это за вас автоматически), поэтому мой код работает без необходимости делать это явно. –
Спасибо, stephen mallette, это именно то, что я искал. – Ram