我已经从一堆30k xml文件中创建了一个图形数据库。我想重用这个图数据库来查询它。目前,每次我必须从中查询内容时,我都会创建图形数据库。由于数据集很大,因此数据库创建大约需要。 40分钟我不知道重用现有数据库的方法,而不是每次都创建它。如果你能告诉我怎么做,我将非常感谢你的帮助。 (Java语言,IDE-> IntelliJ,Redhat Linux)。
答案 0 :(得分:0)
我是新手,但我看到几个代码中有一个Delete数据库方法。也许这就是你的情况。尝试注释掉删除数据库方法o删除ir,只使用启动和关闭。
我试图了解每次运行Java代码时如何使用数据库而无需启动和关闭,也许使用api REST。我还没有回答,但我还在搜索。
答案 1 :(得分:0)
首先,您应确保导入逻辑和查询逻辑不在同一代码上,并且可以在没有其他代码的情况下调用。
您创建的数据库存储在目录中。
neo4j-server.properties
(查找org.neo4j.server.database.location
)。如果您处于嵌入模式,则将数据库的路径声明为图形工厂:
graphDb = new GraphDatabaseFactory()。newEmbeddedDatabase(PATH / TO / NEO.DB);
答案 2 :(得分:0)
重用是什么意思?如果要同时使用多个客户端的数据库,请使用Neo4j Server和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
这是否涵盖了您的用例?
/彼得
答案 3 :(得分:0)
我遇到了同样的问题,这是由于来自code snippets的Neo4j documentation的草率复制粘贴造成的。每次运行代码时,都会删除以前创建的所有节点。
除了删除removeData
- 方法(如Jose所述)之外,您还应删除createDb()
- 方法中的以下行以防止此情况:
FileUtils.deleteRecursively( new File( DB_PATH ) );
即使主题已经过时,也许这对任何人都有帮助。