如何可视化从嵌入式 Neo4j Java 应用程序创建的 Neo4j 图形数据库

Posted

技术标签:

【中文标题】如何可视化从嵌入式 Neo4j Java 应用程序创建的 Neo4j 图形数据库【英文标题】:How to visualise Neo4j graph database created from an embedded Neo4j java application 【发布时间】:2014-07-18 07:56:43 【问题描述】:

我创建了一个嵌入 Neo4j 的应用程序。在那个应用程序中,我创建并存储了一些具有某些关系的节点。我的应用程序已将此数据库保存到文件中。我想可视化这些数据。我知道如果我启动 Neo4j 服务器可以看到图表,但我不知道如何将我的 neo4j.db 文件导入 Neo4j 服务器以便可视化它。任何建议将不胜感激。

【问题讨论】:

要让 Neo4j 服务器使用您自己的数据库,只需编辑 conf/neo4j-server.propereties 文件,设置 org.neo4j.server.database.location=/path/to/your/database.db 属性并使用 ./bin/neo4j start 启动它。 有关一般可视化信息,请查看此页面:neo4j.org/develop/visualize,尤其是 Max de Marzi 的文章maxdemarzi.com @MichaelHunger 可视化链接已失效 【参考方案1】:

根据您的用例,您可能有不同的解决方案:

使用基于网络的可视化 使用桌面应用程序可视化您的数据

使用基于网络的可视化

在这种情况下,您必须使用网络应用程序来可视化数据。 您基本上有两种解决方案:javascript 或 Java 小程序。

对于 Javascript 方面,您有很多选择:D3js、VivaGraph、SigmaJS、KeyLines。 前三个是开源和免费的,而最后一个是商业许可证并且是非免费的。 SO 上关于这些库的问题已经有一百万个,所以我会将您链接到 some of those to 了解各种差异。

桌面应用程序

在这种情况下,我会推荐您的主要解决方案,具体取决于数据类型:Gephi 或 Cytoscape。 在这两种情况下,我认为您必须编写自己的适配器才能与您的应用程序通信。

架构参考

两种情况下的架构如下:

控制器用你要使用的JS可视化框架渲染一个网页 控制器提供了几个 JSON 端点,客户端可以使用它们来查询来自嵌入式 Neo4J 的数据 每个查询都获取数据、放入模型并呈现 JSON 以发送到客户端

【讨论】:

我以前使用过 D3,但我的数据结构是 JSON 格式。当我查看 Neo4j 数据库文件时,我不知道它是如何以及在何处构建数据的。它只是一系列文件夹。这就是我卡住的地方。 您仍然可以使用嵌入的 Neo4J 来查询数据,而无需将原始文件夹导出到应用程序之外。【参考方案2】:

如果您不使用 neo4j 2.0+,那么可视化图表的真正好方法是使用 neoclipse。 https://github.com/neo4j-contrib/neoclipse/downloads 它真的很方便,而且还支持密码。

或者

另一个快速技巧是将您的 db 文件夹(您使用嵌入式数据库创建的)复制到 $NEO4j_HOME/data/

更改 $NEO4j_HOME/conf/neo4j-server-properties 文件以指向

启动你的服务器(bin/.neo4j start)。您将能够在 localhost:7474 可视化您的数据库 希望对你有帮助!

【讨论】:

以上是关于如何可视化从嵌入式 Neo4j Java 应用程序创建的 Neo4j 图形数据库的主要内容,如果未能解决你的问题,请参考以下文章

neo4j如何与其它系统集成

Neo4j的Java嵌入式开发

如何在 C# 中创建嵌入式 Neo4j 数据库

Java连接Neo4j的两种方式

使用 neo4j 嵌入式 java api 为关系添加权重

通过 java 代码生成 db 后 Neo4j 2.2.1 服务器不启动