Groovy 如何查询节点';gremlin中的s子树?

Groovy 如何查询节点';gremlin中的s子树?,groovy,graph,titan,gremlin,Groovy,Graph,Titan,Gremlin,有一个图形,实际上它是一棵树:顶点是节点,边被标记为“子节点”,并从子节点指向父节点 我需要进行gremlin查询以获得递归结构,如下所示: node_info = [properties: node.map(), subnodes: [...list of node_info items...]] Groovy函数更精确地描述了我需要获得的内容: def get_node_hierarchy(node_id) { def get_hierarchy(no

有一个图形,实际上它是一棵树:顶点是节点,边被标记为“子节点”,并从子节点指向父节点

我需要进行gremlin查询以获得递归结构,如下所示:

node_info = [properties: node.map(), 
             subnodes: [...list of node_info items...]]
Groovy函数更精确地描述了我需要获得的内容:

def get_node_hierarchy(node_id) {

    def get_hierarchy(node) {
        def hierarchy_list = []

        for (subnode in node.in('subnode')) {
            sub_hierarchy = get_hierarchy(subnode)
            hierarchy_list.add(sub_hierarchy)
        }

        [properties: node.map(), subnodes: hierarchy_list]
    }

    node = g.V('node_id', node_id).next()
    get_hierarchy(node)
}

result = get_node_hierarchy(1)
是否可以使用单个Gremlin查询实现此功能?

不确定这是否有帮助: