Graph databases 如何使用GremlinPipeline获取自循环路径?

Graph databases 如何使用GremlinPipeline获取自循环路径?,graph-databases,gremlin,Graph Databases,Gremlin,我正在使用一个允许自循环的网络(即,一些边与头部和尾部具有相同的顶点)。假设图g有3个顶点(adam、bill和cid),以及reports类型的3条边([adam reports->bill],[bill reports->cid]),最后一条边是本例中唯一的自反边 gremlin> g = new TinkerGraph(); gremlin> adam = g.addVertex('adam'); gremlin> bill = g.addVertex('bill');

我正在使用一个允许自循环的网络(即,一些边与头部和尾部具有相同的顶点)。假设图
g
有3个顶点(
adam
bill
cid
),以及
reports
类型的3条边(
[adam reports->bill]
[bill reports->cid]
),最后一条边是本例中唯一的自反边

gremlin> g = new TinkerGraph();
gremlin> adam = g.addVertex('adam');
gremlin> bill = g.addVertex('bill');
gremlin> cid = g.addVertex('cid');
gremlin> g.addEdge(adam, bill, 'reports');
gremlin> g.addEdge(bill, cid, 'reports');
gremlin> g.addEdge(adam, adam, 'reports'); 
在gremlin中,可以轻松检索自循环,因此:

gremlin> g.V.sideEffect{v=it}.outE('reports').inV.filter{it==v}.path
gremlin> [v[adam], e[2][adam-reports->adam], v[adam]]
然而,我试图在Java中使用
GremlinPipeline
来做同样的事情,但没有成功。如何构建有效的GremlinePipeline来执行上述操作

GremlinPipeline pp = new GremlinPipeline();
// Add various pies to pp to get a valid pipeline
pp.setStarts(g.getVertices()); 

如果只希望查找自循环边,请执行以下操作:

g.E.filter{it.inV == it.outV}
根据上面的TinkerGraph示例,输出为:

gremlin> g.E.filter{it.inV == it.outV}
==>e[2][adam-reports->adam]