如何在遍历中返回特定顶点,创建两个由边连接的顶点(DSE 5.0 Graph)

时间:2016-12-20 17:46:27

标签: datastax gremlin datastax-enterprise-graph

我有一个遍历,我创建了两个顶点,并用类似的边连接它们:

    DseCluster dseCluster = null;
    dseCluster = DseCluster.builder()
            .addContactPoint(DbC.dseHost)
            .build();
    DseSession dseSession = dseCluster.connect();
    GraphTraversalSource g = DseGraph.traversal(dseSession, new GraphOptions().setGraphName(DbC.graphName));

    GraphTraversal traversal = g
    .addV("aLabel").as("a")
    .addV("aLabel").as("b")
    .addE("edgeLabel").from("a").to("b")

    GraphStatement graphStatement =  DseGraph.statementFromTraversal(traversal);
    GraphResultSet grs = dseSession.executeGraph(graphStatement.setGraphName(DbC.graphName));
    //grs contains an edge only 

如何使结果集只包含一个特定的顶点,如" a"源顶点例如?

我知道我可以改为:

GraphTraversal traversal = g
    .addV("aLabel").as("a")
    .addV("aLabel").as("b")
    .addE("edgeLabel").from("a").to("b").outV() // this returns a 

但我正在寻找像

这样的解决方案
 GraphTraversal traversal = g
    .addV("aLabel").as("a")
    .addV("aLabel").as("b")
    .addE("edgeLabel").from("a").to("b").emit("a") // this doesn't work

谢谢!

1 个答案:

答案 0 :(得分:0)

有效的答案是使用select:

Vertex v =  g
        .addV("aLabel").as("a")
        .addV("aLabel").as("b")
        .addE("edgeLabel").from("a").to("b").<Vertex>select("a").next();

pd.to_datetime