如何使用Neo4j驱动程序按需中止查询

我使用Node.js和Neo4j制作search引擎应用程序,允许用户通过基于Web的用户界面提交graphics遍历查询。 我想让用户select在提交后取消查询(即如果用户决定更改查询参数)。 因此,我需要一种方法来使用Node.js-to-Neo4j驱动程序的命令或通过Cypher查询中止查询。

经过几个小时的search之后,我一直无法find使用任何Node.js-to-Neo4j驱动程序来执行此操作的方法。 我也似乎无法find允许查询查杀的密码查询。 我忽略了一些东西,或者Neo4j不可能? 我目前正在使用Neo4j 2.0.4,但是我愿意升级到新版本的Neo4j,如果它具有查询查杀能力。

从Neo4j版本2.2.0开始,可以从UI和REST接口中删除查询。 我不知道现有的nodejs驱动程序是否支持这个function,但是如果不支持,您仍然可以通过向REST接口发出HTTP请求来实现相同的function。

如果您在2.2.x或更高版本的浏览器中运行查询,您会注意到在执行和显示查询的区域的右上angular有一个(X)closures链接。

通过将查询包装在事务中并将其回滚,您可以获得相同的结果。 实际上,我只是打开networking检查器,看看浏览器UI如何取消正在运行的查询。

我认为这将是推荐的方法:

  1. 使用您要运行的Cypher查询开始交易。 交易将被分配一个标识符,即请求POST http://localhost:7474/db/data/transaction和响应与Location: http://localhost:7474/db/data/transaction/7
  2. 如果要取消查询,请使用您在步骤1中获得的标识删除该事务,即DELETE http://localhost:7474/db/data/transaction/7

您可以在官方文档中find有关Transactional Cypher HTTP端点和示例的更多信息。

更新:node-neo4j似乎支持事务处理,包括回滚。 看文档 。