DataStax Dse图Gremlin管道支持

时间:2017-01-13 15:30:30

标签: datastax-enterprise gremlin datastax-java-driver tinkerpop datastax-enterprise-graph

我正在使用Dse 5.x graph

在文档中,Datastax表示它与“TinkerTop”兼容。 API。

这下面的gremlin查询在Orientdb(一个基于tinkerTop的图数据库)中运行完美

public static List<Vertex> getAllNeighbour(Vertex vertex) {

        List<Vertex> list = new ArrayList<Vertex>();

        GremlinPipeline<Vertex, Vertex> vPipe = new GremlinPipeline<Vertex, Vertex>();
        vPipe.start(vertex).out();

        // Add all neighbors to array list
        for(Object oo : vPipe) {
            Vertex v = (Vertex) oo;
            list.add(v);
        }
        return list;
    }

但是,当我在Dse图表上运行时,它说

Exception in thread "main" java.lang.ClassCastException: com.datastax.driver.dse.graph.DefaultVertex cannot be cast to com.tinkerpop.blueprints.Vertex
    at com.tinkerpop.pipes.transform.VertexQueryPipe.processNextStart(VertexQueryPipe.java:85)
    at com.tinkerpop.pipes.transform.VertexQueryPipe.processNextStart(VertexQueryPipe.java:19)
    at com.tinkerpop.pipes.AbstractPipe.hasNext(AbstractPipe.java:98)
    at com.tinkerpop.pipes.util.Pipeline.hasNext(Pipeline.java:105)

我想要达到的目标是:

在DSE图中获取顶点的所有相邻顶点。

我有什么方法可以跑“GremlinPipeline&#39;在Dse图中查询?或以其他任何方式进行查询。

谢谢..!

1 个答案:

答案 0 :(得分:1)

您展示的是旧的TinkerPop 2 API。 DSE图使用TinkerPop 3。在TinkerPop 3中,您的代码看起来更像是这样:

public static List<Vertex> getAllNeighbour(Vertex vertex) {
    return g.V(vertex).out().toList()
}