как использовать Tinkerpop blueprints API в arangodb для получения всех вершин и ребер

#java #arangodb #tinkerpop #tinkerpop-blueprint

#java #arangodb #tinkerpop #tinkerpop-blueprint

Вопрос:

Я создал график и добавил вершины и ребра с помощью Tinkerpop api, используя приведенный ниже код

 ArangoDBBatchGraph arang = new ArangoDBBatchGraph("localhost", 8529, "testgraph", "testcollection", "testedgecollection");
        Vertex user = null;
        Vertex preVertex = null;
        preVertex = arang.addVertex(0);
        preVertex.setProperty("name", "edgevertex");

        long startTime = System.currentTimeMillis();
        for(int rec = 1; rec<=10; rec  ) {

            user = arang.addVertex(rec);
            user.setProperty("name", "user"  rec);
            user.setProperty("userid", rec);
            user.setProperty("gender", "male");
            user.setProperty("firstname", "user");
            user.setProperty("lastname", rec);
            user.setProperty("employee number", "emp0"  rec);

            arang.addEdge(rec, user, preVertex, "edge"  rec);
            preVertex = user;
        }

        System.out.println("write Time consumed : "  (System.currentTimeMillis() - startTime));
  

но я хочу получить все ребра и вершины в графе
Я попробовал приведенный ниже код, он не работает, вызывая исключение exception в потоке «main» java.lang.Исключение UnsupportedOperationException
в com.arangodb.blueprints.batch.ArangoDBBatchGraph.getVertices(ArangoDBBatchGraph.java:277)
в mydb.ArangodbTest.TestConnection.main(TestConnection.java:54)

 startTime = System.currentTimeMillis();
        Iterable<Vertex>  iter = arang.getVertices();
        List<Vertex> list = new ArrayList<Vertex>();
        if(iter != null) {
            for(final Vertex vert : iter) {
                list.add(vert);
            }
        }
        Iterable<Edge>  iterEdge = arang.getEdges();
        List<Edge> listEdge = new ArrayList<Edge>();
        if(iter != null) {
            for(Edge edge : iterEdge) {
                listEdge.add(edge);
            }
        }

        System.out.println("Read vertices list: "  list.size()   ", Edges List: " listEdge  "; Time consumed : "  (System.currentTimeMillis() - startTime));
  

Пожалуйста, помогите получить все ребра и вершины с помощью tinkerpop api из arangodb

Заранее спасибо

Ответ №1:

ArangoDBBatchGraph не поддерживает методы getVertices() и getEdges() . Вы должны использовать ArangoDBGraph вместо ArangoDBBatchGraph .

Помимо этого, ваш код должен работать.