Hi Marc, this is the slowest way :-) Create an index at the beginning against property ID of your class, and then lookup against the index.
Look at: https://github.com/orientechnologies/orientdb/wiki/Graph-Database-Tinkerpop#use-indices Lvc@ On 9 April 2014 12:20, Marc Tigges <[email protected]> wrote: > Sorry, i deleted the last message after some minutes cause i noticed, that > my database was locked (dont know why) > Its working! > > But anyway i think i have another question. > > This is the method to create a edge: > > edge = this.graph.addEdge(id, outVertex, inVertex, edgeName); > > so to create a new edge i need the out and the in vertex. i process my > data in the following way > > > 1. I parse all classes (vertex types) > 2. I parse all instances (vertices) > 3. I parse all edges (schemaless) > > So that means when i create my edges i have to find my in vertex and my > out vertex. > What is the most efficient way to do it? At the moment i do it like that: > > public void createEdge(String edgeName, String outID, String outClass, > String inID, String inClass, String property) { > Vertex outVertex = null; > Vertex inVertex = null; > Edge edge = null; > for(Vertex vertex : this.graph.getVerticesOfClass(outClass)) { > if(vertex.getProperty("ID").equals(outID)) { > outVertex = vertex; > } > } > for(Vertex vertex : this.graph.getVerticesOfClass(inClass)) { > if(vertex.getProperty("ID").equals(inID)) { > inVertex = vertex; > } > } > edge = this.graph.addEdge(null, outVertex, inVertex, edgeName); > if(property != null) { > if(DataType.isInteger(property)) { > edge.setProperty("value", Integer.valueOf(property)); > } else if(DataType.isDouble(property)) { > edge.setProperty("value", Double.valueOf(property)); > } else if(DataType.isBoolean(property)) { > edge.setProperty("value", Boolean.valueOf(property)); > } else if(DataType.isDate(property)) { > edge.setProperty("value", Date.valueOf(property)); > } else { > edge.setProperty("value", property); > } > } > this.inkrementStatementCounter(); > } > > In my opinion it is not very efficient to iterate over all vertices of a > given class to find the vertex with > the correct id. > > Is there a more efficient way? > > Am Mittwoch, 9. April 2014 11:34:10 UTC+2 schrieb Lvc@: > >> Hi Marc, >> where did you get a timeout? Can you post here the full exception? What >> release are you using? >> >> Lvc@ >> >>> >>> -- > > --- > You received this message because you are subscribed to the Google Groups > "OrientDB" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
