-1

在过去的两周里,我阅读了各种与 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 数据库,如果合适的话?

提前感谢您对这个问题的帮助。

4

1 回答 1

0

可以通过 Bolt 协议访问嵌入的 Neo4j。请尝试我的新插件并告诉我它是否解决了您的问题:

https://github.com/olir/gephi-neo4j-url-importer-plugin

于 2019-11-23T17:12:46.933 回答