【发布时间】:2019-10-08 23:49:45
【问题描述】:
在过去的两周里,我阅读了各种与 Neo4j 数据库可视化相关的 stackoverflow 帖子,但它们并没有解决我的问题。我从一篇文章中得到想法,从另一篇文章中得到想法,但它们并不一致。我还进行了许多 Google 搜索,试图了解如何可视化嵌入式 Neo4j 图形数据库,但无济于事。
我编写了一个非常简单的 java 类和方法来创建一个简单的图形(35 个节点和 30 个关系)。下面的第一个代码 sn-p 显示我已经创建了嵌入式图形数据库。第二个代码 sn-p 显示了我如何能够查询数据库,一旦填充。
我已经能够在 Java 代码中查询图形并确认节点和关系是否正确。我想做的是将这个简单的图表可视化,然后再转到具有更多节点和关系的真实数据集。
我正在运行 macOS 10.15 (Catalina)、JetBrains IntelliJ IDE、JDK 1.8.0_221 的 iMac 上进行代码开发和测试。一旦我让这段代码在我的 iMac 上运行,我计划将它迁移到 GCP 环境以大规模运行它。随着时间的推移,我需要创建数据库的可视化,因此手动密集的可视化工作是不可取的。因此,我不想使用 Neo4j 桌面浏览器来可视化图形数据库。
我尝试使用 Neo4j 插件将嵌入式图形数据库引入 Gephi(首选方法)。当我选择图形数据库文件夹并单击打开时,Gephi 以一个标题为警告的空白对话框作为响应。我确信我做错了什么,但我不知道我做了什么,或者做得不对。
嵌入式图形数据库的创建
gdbFactory = new GraphDatabaseFactory();
gdbService = gdbFactory.newEmbeddedDatabase(new File(gdbDirectory));
try (Transaction databaseTransaction = gdbService.beginTx())
{
...database commands...
databaseTransaction.success();
}
gdbService.shutdown();
嵌入式图数据库查询
try (Transaction databaseTransaction = BaselineGitHubToGraphDb.gdbService.beginTx())
{
Result queryResult = BaselineGitHubToGraphDb.gdbService.execute(queryString);
while (queryResult.hasNext())
{
Map<String, Object> row = queryResult.next();
for (Map.Entry<String, Object> column : row.entrySet())
{
linesOfText += column.getKey() + ": " + column.getValue() + "; ";
}
linesOfText += "\n";
}
System.out.printf("\t%s\n",
linesOfText);
databaseTransaction.success();
}
我希望能够生成图形数据库的图形表示,以验证创建节点、关系和相关属性的 java 代码的逻辑。在将代码移动到 GCP 环境以对其进行大规模测试并在那里工作之前,我想使用这个小数据集,然后是大约 10 倍大的数据集。
您能否分享或指出一些 java 代码,让我可以使用 Gephi 或其他方式(如果合适)可视化嵌入式 Neo4j 数据库?
提前感谢您对这个问题的帮助。
【问题讨论】:
-
以编程方式验证您的数据库不是更容易吗?
-
@olir,非常感谢您创建的 Gephi 插件副本,用于通过螺栓连接在 Gephi 中可视化 Neo4j 图形。我能够很好地安装插件。我更新了字段并很好地测试了连接。但是,当我单击“确定”按钮时,插件返回错误“密码查询失败”。这是我使用的两个查询... MATCH (n) RETURN (n) MATCH (n)-[r]->(m) RETURN (n) 我使用第一个查询使用 Neo4j 浏览器生成我的绘图。你对我可以做些什么来让你的插件工作有什么建议吗?谢谢,西罗