1

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

经过几个小时的搜索,我找不到使用任何 Node.js-to-Neo4j 驱动程序的方法。我似乎也找不到允许终止查询的密码查询。我是否忽略了某些东西,或者这对 Neo4j 来说是不可能的?我目前使用的是 Neo4j 2.0.4,但如果它具有查询查杀功能,我愿意升级到更新版本的 Neo4j。

4

1 回答 1

4

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

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

您可以通过将查询包装在事务中并将它们回滚来获得相同的结果。事实上,我只是打开了 Web 检查器来查看浏览器 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

您将在官方文档中找到有关 Transactional Cypher HTTP Endpoint 和示例的更多信息。

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

于 2015-04-14T19:20:30.717 回答