2017-05-03 209 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? –