У меня есть график, где ребра с определенными метками образуют дерево с определенными начальными и конечными вершинами.
Я хочу выполнить поиск в ширину и выдать вершины каждого уровня дерева в виде отдельного списка для дальнейшей обработки.
Пока что я могу получить вершины в правильном порядке, используя следующий запрос:
g.V()
.hasLabel("root")
.repeat(out("tree_edge").barrier().dedup())
.emit()
.until(outE("tree_edge").count().is(0))
Однако это приводит к единому списку:
==>v[64]
==>v[72]
==>v[80]
==>v[88]
==>v[208]
==>v[176]
==>v[216]
==>v[184]
==>v[192]
==>v[136]
==>v[152]
==>v[104]
==>v[120]
==>v[128]
==>v[144]
==>v[96]
Где то, что я хочу, является чем-то вроде:
==>[v[64], v[72], v[80], v[88]]
==>[v[208], v[176], v[216], v[184], v[192]]
==>[v[136], v[152], v[104], v[120], v[128], v[144], v[96]]
Я не уверен, что мне нужно добавить к шагу повторения, чтобы он выдавал список вместо отдельных вершин. Я играл с cap
, project
и fold
безрезультатно.
Любые указатели приветствуются.