package neo4j.tests; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; import org.neo4j.graphdb.DynamicRelationshipType; import org.neo4j.graphdb.RelationshipType; import org.neo4j.unsafe.batchinsert.BatchInserter; import org.neo4j.unsafe.batchinsert.BatchInserters; public class App { public static void main( String[] args ) { String fileName = null; String directory = null; InputStreamReader istream; BufferedReader bufRead; istream = new InputStreamReader(System.in) ; bufRead = new BufferedReader(istream) ; try { System.out.print("Graph file name: "); fileName = bufRead.readLine(); System.out.print("Output directory: "); directory = bufRead.readLine(); BigTextFile file = null; BatchInserter inserter = BatchInserters.inserter(directory); RelationshipType rel = DynamicRelationshipType.withName( "REL" ); Map<String, Long> nodes = new HashMap<String, Long>(); file = new BigTextFile(fileName); String fromNodeId = null, toNodeId = null; Long fromNode, toNode; Map<String, Object> properties ; StringTokenizer tokenizer = null; long edgeCounter=0, vertexCounter=0; for (String line : file) { if (!line.startsWith("#")) { tokenizer = new StringTokenizer(line); fromNodeId = tokenizer.nextToken(); toNodeId = tokenizer.nextToken(); fromNode = nodes.get(fromNodeId); if (fromNode == null) { properties = new HashMap<String, Object>(); properties.put("name", fromNodeId ); fromNode = inserter.createNode(properties); nodes.put(fromNodeId, fromNode); vertexCounter++; } toNode = nodes.get(toNodeId); if (toNode == null) { properties = new HashMap<String, Object>(); properties.put("name", toNodeId ); toNode = inserter.createNode(properties); nodes.put(toNodeId, toNode); vertexCounter++; } inserter.createRelationship( fromNode, toNode, rel, null ); edgeCounter++; } } System.out.println("File succesfully loaded: " + vertexCounter + " vertices and " + edgeCounter + " edges"); inserter.shutdown(); /* GraphDatabaseService db = new EmbeddedGraphDatabase( "target/batchinserter-example" ); Node mNode = db.getNodeById("7"); Node cNode = mNode.getSingleRelationship( knows, Direction.OUTGOING ) .getEndNode(); assertEquals( "Chris", cNode.getProperty( "name" ) ); db.shutdown(); */ } catch (Exception e) { e.printStackTrace(); } } /* public static void emain( String[] args ) { String fileName = null; String directory = null; InputStreamReader istream; BufferedReader bufRead; long lineCounter = 0; istream = new InputStreamReader(System.in) ; bufRead = new BufferedReader(istream) ; try { System.out.print("Graph file name: "); fileName = bufRead.readLine(); System.out.print("Output directory: "); directory = bufRead.readLine(); BigTextFile file = null; Neo4jGraph graph = new Neo4jGraph(directory); file = new BigTextFile(fileName); String fromNodeId = null, toNodeId = null; Vertex fromNode, toNode; StringTokenizer tokenizer = null; long edgeCounter=0, vertexCounter=0; for (String line : file) { if (!line.startsWith("#")) { lineCounter++; tokenizer = new StringTokenizer(line); fromNodeId = tokenizer.nextToken(); toNodeId = tokenizer.nextToken(); fromNode = graph.getVertex(fromNodeId); if (fromNode == null) { fromNode = graph.addVertex(""); fromNode.setProperty("name", fromNodeId); vertexCounter++; } toNode = graph.getVertex(toNodeId); if (toNode == null) { toNode = graph.addVertex(toNodeId); toNode.setProperty("name", toNodeId); vertexCounter++; } graph.addEdge(null, fromNode, toNode, "-"); if (lineCounter % 1000 == 0) System.out.println(lineCounter + " lines have been written"); edgeCounter++; graph.stopTransaction(Conclusion.SUCCESS); } } System.out.println("File succesfully loaded: " + vertexCounter + " vertices and " + edgeCounter + " edges"); graph.shutdown(); } catch (Exception e) { e.printStackTrace(); } } */ }