【问题标题】:Visualizing an Embedded Neo4j Graph Database可视化嵌入式 Neo4j 图形数据库
【发布时间】: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 浏览器生成我的绘图。你对我可以做些什么来让你的插件工作有什么建议吗?谢谢,西罗

标签: java neo4j gephi bolt


【解决方案1】:

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

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

【讨论】:

  • 非常感谢您提供有关您创建的 Gephi 插件的信息。我安装得很好。我按照您的建议修改了字段。我测试了连接,这很好。但是,插件针对以下查询返回了错误消息“Cypher query failed”:
猜你喜欢
  • 2014-07-18
  • 2017-10-06
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-14
  • 1970-01-01
相关资源
最近更新 更多