java - 可视化嵌入式 Neo4j 图形数据库
问题描述
在过去的两周里,我阅读了各种与 Neo4j 数据库可视化相关的 stackoverflow 帖子,但它们并没有解决我的问题。我从一篇文章中得到想法,从另一篇文章中得到想法,但它们并不一致。我还进行了许多 Google 搜索,试图了解如何可视化嵌入式 Neo4j 图形数据库,但无济于事。
我编写了一个非常简单的 java 类和方法来创建一个简单的图形(35 个节点和 30 个关系)。下面的第一个代码片段显示我已经创建了嵌入式图形数据库。第二个代码片段显示了我如何能够查询数据库,一旦填充。
我已经能够在 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 数据库,如果合适的话?
提前感谢您对这个问题的帮助。
解决方案
可以通过 Bolt 协议访问嵌入的 Neo4j。请尝试我的新插件并告诉我它是否解决了您的问题:
推荐阅读
- javascript - 使用语音气球类型而不是模态类型显示布尔玛日历扩展
- javascript - 为什么我无法连接到部署到 Heroku 的 websocket 服务器?
- java - 如何从数组中获取随机对象
- c++ - 当我使用类执行链表时,它显示一个额外的零
- python - OpenCV imread() 方法返回 None
- php - 定义有关 Player_HP 和 Damage 的变量
- c# - 从 DataTable 填充 DataGridViewComboBoxCell 不起作用
- python - 如何使用 pythonnet 在 python 侦听器中订阅 .NET 事件?
- mysql - 如何内连接两个其他内连接查询
- reactjs - 简单的引导按钮在 React 中不显示变体颜色