2017-05-03 208 views
1

我已經看過不同的帖子,如thisthis,但似乎沒有任何答案100%。 我目前的問題是,我想用圖像庫(或軟件/工具)對我的Neo4j-Graph進行可視化分析 - 也是理想的分析。 數據庫服務器正在遠程(虛擬)服務器上運行,似乎沒有機會將數據庫導出到我可以使用的格式。 我試圖導出一個.graphml文件中的圖來導入Gephi中的這個文件,但是Gephi沒有找到屬性。帶有apoc程序的Gephi流和圖形流式插件也不起作用,因爲它是一個遠程服務器(也提供了工具here)。 現在我正在用Alchemy.js進行測試...到目前爲止,這麼好。但是,似乎沒有辦法將圖形/查詢導出爲GraphJson格式? 是否真的沒有「簡單」的方式來導出數據?將整個Neo4j數據庫/密碼結果導出到GraphJSON

感謝您的幫助提前!

回答

3

這是我會怎樣着手

運行此查詢從您在Neo4j的瀏覽器或任何螺栓司機提到的職位:

MATCH (a)-[r]->(b) 
WITH collect(
    { 
     source: id(a), 
     target: id(b), 
     caption: type(r) 
    } 
) AS edges 
RETURN edges 

現在您已經加載的數據,你可以簡單地使用下載按鈕下載爲JSON。(如果你使用的螺栓司機無視) download

要麼你手動下載JSON從Neo4j的瀏覽器或您正在使用的螺栓司機,你將最終索姆像這樣。

{ 
    "columns": [ 
    "edges" 
    ], 
    "data": [ 
    { 
     "row": [ 
     [ 
      { 
      "source": 31288, 
      "target": 152, 
      "caption": "HAS_PAYMENT_METHOD" 
      } 
     ] 
     ], 
     "meta": [ 
     null 
     ], 
     "graph": { 
     "nodes": [ 

     ], 
     "relationships": [ 

     ] 
     } 
    } 
    ] 

現在您只需要篩選出data.row結果並完成。可能使用螺栓驅動程序是更好的選擇,因爲無論如何您必須清理數據,並且它不會遇到將大量數據返回給瀏覽器的問題(它可能會崩潰)。

更新:增加了Python版本

from neo4j.v1 import GraphDatabase 

driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "neo4j")) 


session = driver.session() 


result = session.run("MATCH (a)-[r]->(b) WITH collect({source: id(a),target: id(b),caption: type(r)}) AS edges RETURN edges") 

for record in result: 
    print(record["edges"]) 

希望這有助於

+0

應處理爲節點的情況下,沒有任何關係.. –

+0

如果只是沒有關係的節點,你只返回來源ID? –