在这两种情况下使用了哪个 Neo4j 端点?

Which Neo4j endpoint is in use in these two cases?

我在服务器模式下使用 Neo4J,密码查询是通过 REST API 发送的。我也在测量查询的性能,这就是我使用两个不同库的原因:

(标准?)neo4j-rest-graphdb.jar 我正在与 class RestAPIFacade:RestAPI graphDb = new RestAPIFacade(...);

建立连接

Neo4J-jDBC-2.1.4.jar 我在哪里使用 DriverManager.getConnection(..) 来建立连接。

据我了解,这里的一切都使用 REST,Neo4j 还没有 tcp/socket 连接。对于 REST API,您可以使用不同的 端点 (例如事务性 HTTP 端点,...),这将解释不同的执行时间。 jDBC 版本在 FOAF 查询上快了一半以上。 为什么会这样,用户代码背后发生了什么?

JDBC 使用流式传输数据的事务端点, 但也 returns 更少的有效载荷。

这还不是最快的实现。

如果你想要,你也许可以自己做,如下所示:

http://neo4j.com/docs/stable/server-java-rest-client-example.html#_sending_cypher

我这里还有一个更快的实现,我还需要合并到JDBC驱动中:

https://github.com/jexp/neo4j-remoting-cypher/blob/master/src/main/java/transaction/CypherTransaction.java