2013-08-02 70 views
0

我已經加載了50k節點並通過talend建立了它們之間的關係。我編寫了java代碼連接到neo4j並嘗試執行密碼查詢。它連接到neo4j但顯示錯誤的結果。我的java代碼是:通過java訪問neo4j節點和關係

package com.Neo4J; 

import org.neo4j.cypher.javacompat.ExecutionEngine; 
import org.neo4j.cypher.javacompat.ExecutionResult; 
import org.neo4j.graphdb.GraphDatabaseService; 
import org.neo4j.graphdb.Transaction; 
import org.neo4j.graphdb.factory.GraphDatabaseFactory; 

public class CaseNeo4J { 

private static final String Neo4J_DBPath="/neo4j-community-1.9.2/data/graph.db"; 
GraphDatabaseService gdb; 

public void connect(){ 

    gdb = new GraphDatabaseFactory().newEmbeddedDatabase(Neo4J_DBPath); 
    Transaction transaction = gdb.beginTx(); 
    ExecutionEngine engine = new ExecutionEngine(gdb); 
    ExecutionResult result = engine.execute("start n=node(*) return n"); 
    System.out.println(result.dumpToString()); 
} 

public static void main(String[] args) { 

    CaseNeo4J neoobj = new CaseNeo4J(); 
    neoobj.connect(); 

} 
} 

outputs as : 
+-----------+ 
| n   | 
+-----------+ 
| Node[0]{} | 
+-----------+ 
1 row 

Actully它應該顯示50000個節點,但它顯示ony 1 ...任何想法?

+0

在我看來,嵌入式數據庫實際上是空的。可能你沒有真正連接到數據庫,但創建一個新的。目錄'/ neo4j-community-1.9.2'是從Neo4j網站下載的服務器軟件包嗎?因爲這樣,數據實際上應該位於'/ neo4j-community-1.9.2/data/graph.db'中。如果你現在看,將會有目錄'/ neo4j-community-1.9.2/graph.db',因爲你的代碼創建了它。但它看似空洞。 – khituras

+0

是的..我已經從neo4j網站本身下載它。它也不是空的,因爲我有localhost:7474運行,它顯示50000個節點和100000個關係。此外,我能夠在Web UI上運行密碼查詢,這給了我正確的結果。 –

+0

是的,但路徑錯了,不是嗎?只要您將java代碼指向'/neo4j-community-1.9.2',您就不會看到您插入服務器的數據。 – khituras

回答

0

對不起,如果我的漏洞太明顯,但你有沒有嘗試過:MATCH(n)RETURN n作爲查詢?