Java Titan接收边,连接两个集合的任何节点

Java Titan接收边,连接两个集合的任何节点,java,titan,gremlin,Java,Titan,Gremlin,我试图检索连接集合A中的任何节点和集合B中的一个节点的所有边。 目前的做法: ArrayList<Vertex> nodeStartList = getVertexList(relationshipStorage.getStartNode(), g, snapshotId); ArrayList<Vertex> nodeEndList = getVertexList(relationshipStorage.getEndNode(), g, snapshotI

我试图检索连接集合A中的任何节点和集合B中的一个节点的所有边。 目前的做法:

 ArrayList<Vertex> nodeStartList =  getVertexList(relationshipStorage.getStartNode(), g, snapshotId);
    ArrayList<Vertex> nodeEndList =  getVertexList(relationshipStorage.getEndNode(), g, snapshotId);
ArrayList nodeStartList=getVertexList(relationshipStorage.getStartNode(),g,snapshotId);
ArrayList nodeEndList=getVertexList(relationshipStorage.getEndNode(),g,snapshotId);
顶点列表已正确填充(已检查)

GraphTraversal tempOutput=g.V(nodeStartList.toArray()).bothE().where(uuu.is)(P.in(nodeEndList.toArray())).hasLabel(relationshipStorage.getId());
但我总是从输出中检索空列表。
我确信我有与我的查询匹配的边。

以下是一些有效的方法:

gremlin> graph = TinkerGraph.open();
==>tinkergraph[vertices:0 edges:0]
gremlin> v1 = graph.addVertex();
gremlin> v2 = graph.addVertex();
gremlin> v3 = graph.addVertex();
gremlin> v4 = graph.addVertex();
gremlin> v5 = graph.addVertex();
gremlin> v6 = graph.addVertex();
gremlin> v1.addEdge("edgeLabel", v4);
gremlin> v2.addEdge("edgeLabel", v5);
gremlin> v3.addEdge("edgeLabel", v6);
上面创建了6个顶点,它们之间有3条边。然后,我可以通过以下方式找到这些边:

gremlin> graph.traversal().V(v1, v2, v3).bothE().filter(otherV().is(within(v4, v5, v6)))
==>e[6][0-edgeLabel->3]
==>e[7][1-edgeLabel->4]
==>e[8][2-edgeLabel->5]

“边缘”是什么?这是一个gremlin常量?它只是我想从遍历中检索的结果的一个标签。我可以把
说成(“bob”)
,然后在结尾说
选择(“bob”)
。关于这一点的更多信息,就像我检查了所有节点“n1”和“n2”以及边“e”,但只返回e。如果我不使用as和select,我想它可能也会返回节点?如果不使用
select
,您将在遍历结束时得到结果,在这种情况下,它将只是您的目标节点
v4
v5
,和
v6
,我对遍历进行了一些调整。结果保持不变,但不需要
hasId()
或路径标记。
gremlin> graph.traversal().V(v1, v2, v3).bothE().filter(otherV().is(within(v4, v5, v6)))
==>e[6][0-edgeLabel->3]
==>e[7][1-edgeLabel->4]
==>e[8][2-edgeLabel->5]