2014-09-24 2 views
9

Come utilizzare il database esistente in neo4j usando java api? Ho già creato un database neo4j e volevo usarlo per diverse query. Tuttavia, quando ho aperto il database esistente che ho creato e fatto qualche query, non è stato restituito nulla. Il frammento di codice che sto usando è la seguente:Neo4j: Come aprire un database esistente in neo4j usando java api?

private static final String DB_PATH = "c:/Users/Reed/workspace/test/target1/ttldb"; 
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH); 


ExecutionEngine engine = new ExecutionEngine(db); 

ExecutionResult result; 

try (Transaction tx = db.beginTx();) 
{ 

    result = engine.execute("match (n) return n"); 

    Iterator<Node> n_column = result.columnAs("n"); 
    for (Node node : IteratorUtil.asIterable(n_column)) 
    { 

     nodeResult = node + ": " + node.getProperty("name"); 

     System.out.println(nodeResult); 
    } 
    tx.success(); 

} 

Qualche suggerimento? Grazie in anticipo.

+0

la variabile 'nodeResult' non è dichiarata . Sei davvero sicuro che il tuo database contenga dati? Come hai creato i dati? Hai commesso dopo l'importazione? – tstorms

+1

Per impostazione predefinita, il database neo4j non avrà alcun dato. È necessario assicurarsi che quando si eseguono le scritture nel database che si stanno commettendo e che si stia chiudendo il DB correttamente (utilizzando un hook di shutdown per assicurarsi che i dati vengano svuotati correttamente). – Nicholas

+0

se il tuo percorso è quello buono (la cartella db che vuoi ottenere) tutto dovrebbe funzionare bene. L'unica cosa che manca è un blocco 'finally {tx.close()}' alla fine della tua clausola try. – Supamiu

risposta

0

Se si utilizza Neo4j in modalità incorporata cioè si trova all'interno della stessa JVM come applicazione, è possibile accedervi utilizzando:.

GraphDatabaseService graphDb = new GraphDatabaseFactory() newEmbeddedDatabase (DBPATH)

dove DBPATH è il percorso del database creato utilizzando Webadmin. Potete trovare quel percorso nel vostro Neo4j directory di installazione/conf/neo4j-server.properties (Il nome della proprietà è org.neo4j.server.database.location)

volta istanziato vostra graphDb, è possibile eseguire query Cypher come descritto in http://docs.neo4j.org/chunked/stable/tutorials-cypher-java.html

Se non si utilizza Neo4j in modalità incorporata e si desidera connettersi al server esistente in esecuzione sulla porta 7474, è possibile utilizzare il resto Java vincolante: https://github.com/neo4j/java-rest-binding/

+0

http://neo4j.com/docs/stable/server-configuration.html –