如何获取本地运行的 Neo4j 服务器的 GraphDatabaseService 实例

Mah*_*aha 7 java neo4j neo4j-traversal-api

我正在尝试 neo4j 遍历 api。所有在线示例都与GraphDatabaseService实例一起使用,然后使用它traversalDescription()来定义遍历模式。

然而,在线示例(例如这个)用于从嵌入式数据库/数据库文件GraphDatabaseFactory获取实例:GraphDatabaseService

GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase("/tmp/neo4j/");
Run Code Online (Sandbox Code Playgroud)

我想将它与本地运行的 neo4j 服务器实例一起使用。通常我通过调用 opbtained 实例上的方法来执行此操作,session如下所示:

Driver driver = GraphDatabase.driver( "bolt://localhost", AuthTokens.basic( "neo4j", "password" ) );
session session = driver.session();
Run Code Online (Sandbox Code Playgroud)

我们如何从实例或其他方式获取实例GraphDatabaseService,以便我们可以使用本地运行的 Neo4j 服务器实例?或者我们只能在嵌入 Neo4j 数据库的情况下使用遍历 api 吗?driversession

log*_*ima 2

来自GraphDatabaseServiceNeo4j 的内部 Java API。因此,要获取它,您应该在数据库端(而不是在客户端/驱动程序端)。

驱动程序只讲 Cypher(不讲 Java)。

为此,许多示例直接在 Java 代码中创建嵌入式数据库,以便它们可以访问该服务。

另一种解决方案是制作一个可以在 Cypher 中调用的 Java 过程。看看这个文档:http://neo4j.com/docs/developer-manual/current/extending-neo4j/procedures/