0

2 つの頂点を作成するトラバーサルがあり、それらを次のようなエッジで接続します。

    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

ありがとう!

4

1 に答える 1

0

うまくいった答えは、選択を使用することです:

GraphTraversal<Vertex,Vertex> traversal = g
    .addV("aLabel").as("a")
    .addV("aLabel").as("b")
    .addE("edgeLabel").from("a").to("b").select("a")

また

Vertex v =  g
        .addV("aLabel").as("a")
        .addV("aLabel").as("b")
        .addE("edgeLabel").from("a").to("b").<Vertex>select("a").next();
于 2016-12-20T18:47:09.290 に答える