我正在尝试实现一个查询和图形可视化框架,允许用户输入 Gremlin 查询,返回 D3 结果图。D3 图是使用 JSON 构建的 - 这是使用来自 Gremlin 查询的单独顶点和边输出创建的。对于简单的查询,例如:
g.V.filter{it.attr_a == "foo"}
这很好用。但是,当我尝试执行更复杂的查询时,如下所示:
g.E.filter{it.attr_a == 'foo'}.groupBy{it.attr_b}{it.outV.value}.cap.next().findAll{k,e->e.size()<=3}
- Find all instances of *value*
- Grouped by unique *attr_b*
- Where *attr_a* = foo
- And *attr_b* is paired with no more than 2 other instances of *value*
相反,输出采用以下形式:
attr_b1: {value1, value2, value3}
attr_b2: {value4}
attr_b3: {value6, value7}
我想知道 Gremlin 是否有办法将结果输出为节点和边的列表,以便我可以将结果显示为图表。我知道我可以编辑我的 D3 代码以接收这个新输出,但目前对查询的类型/复杂性没有限制,因此键/值对不一定每次都相同。
谢谢。