使用EmbeddedGraphDatabase以服务器模式访问Neo4j?

时间:2011-05-07 13:33:12

标签: neo4j

如果我在服务器模式下运行neo4j以便可以使用REST API访问它,我可以使用EmbeddedGraphDatabase-class访问相同的neo4j实例吗?

我正在考虑一个生产设置,其中使用EmbeddedGraphDatabase的Java应用程序正在驱动逻辑,但其他客户端可能使用REST以只读模式导航数据。

1 个答案:

答案 0 :(得分:7)

您所描述的是服务器插件或扩展程序。这样您就可以通过REST API公开您的数据库,但同时您可以从自定义插件/扩展程序代码中访问嵌入式图表db hihgly performant。

在您的自定义代码中,您可以注入一个操作的GraphDatabaseService。

您可以使用neo4j-server将自定义扩展部署为jar,并让客户端代码通过面向域的restful API进行操作。

// extension sample
@Path( "/helloworld" )
public class HelloWorldResource {

private final GraphDatabaseService database;

public HelloWorldResource( @Context GraphDatabaseService database) {
  this.database = database;
}

@GET
@Produces( MediaType.TEXT_PLAIN )
@Path( "/{nodeId}" )
public Response hello( @PathParam( "nodeId" ) long nodeId ) {
    // Do stuff with the database
    return Response.status( Status.OK ).entity(
            ( "Hello World, nodeId=" + nodeId).getBytes() ).build();
}
}

撰写pluginsextensions的文档。