0

我从一堆 30k xml 文件中创建了一个图形数据库。我想重用这个图形数据库来查询它。目前,每次我必须从中查询某些内容时,我都会创建图形数据库。由于数据集很大,创建数据库大约需要 . 40 分钟。我不知道重用现有数据库而不是每次都创建它的方式。如果您能告诉我如何执行此操作,我将不胜感激。(Java 语言、IDE-> IntelliJ、Redhat Linux)。

4

4 回答 4

0

我是这方面的新手,但我看到几个代码中有一个删除数据库方法。也许这就是你的情况。尝试注释掉删除数据库方法o delete ir,并且只使用启动和关闭。

我想知道每次Java代码运行时如何使用数据库而无需启动和关闭,也许是使用api REST。我还没有答案,但我仍在寻找。

于 2013-06-26T17:12:47.850 回答
0

首先,您应该确保您的导入逻辑和查询逻辑不在同一代码上,并且您可以在没有另一个的情况下调用。

您创建的数据库存储在一个目录中。

  • 如果您处于服务器模式,则在配置文件中指定:(neo4j-server.properties查找org.neo4j.server.database.location)。
  • 如果您处于嵌入式模式,则将数据库的路径声明到图形工厂:

    graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(PATH/TO/NEO.DB);

于 2013-06-27T07:02:47.417 回答
0

重用是什么意思?如果您想同时从多个客户端使用数据库,请使用 Neo4j 服务器和 REST,请参阅http://docs.neo4j.org/chunked/snapshot/rest-api.html并将服务器指向您的数据库conf/neo4j-server.properties 中的目录。

此外,您可以将 Neo4j 的新实例指向同一数据库目录,然后打开您创建的数据库(独占),请参阅https://github.com/neo4j/neo4j/blob/master/community/embedded-examples/ src/main/java/org/neo4j/examples/EmbeddedNeo4j.java#L35

这是否涵盖了您的用例?

/彼得

于 2013-06-30T09:24:02.260 回答
0

我刚刚遇到了同样的问题,这是由于从 Neo4j 文档中草率地复制粘贴代码片段造成的。每次我运行代码时,之前创建的所有节点都会被删除。

除了删除removeData-method(如 Jose 所述)之外,您还应该删除createDb()-method 中的以下行以防止这种情况:

FileUtils.deleteRecursively( new File( DB_PATH ) );

也许这仍然对任何人都有帮助,即使这个话题很老了。

于 2015-08-17T15:57:51.157 回答