如何使用 Neo4j 驱动程序按需中止查询
How to abort query on demand using Neo4j drivers
我正在使用 Node.js 和 Neo4j 制作一个搜索引擎应用程序,它允许用户通过基于 Web 的用户界面提交图形遍历查询。我想为用户提供在提交查询后取消查询的选项(即,如果用户决定更改查询参数)。因此,我需要一种方法来使用来自 Node.js-to-Neo4j 驱动程序的命令或通过 Cypher 查询来中止查询。
经过几个小时的搜索,我无法找到使用任何 Node.js-to-Neo4j 驱动程序执行此操作的方法。我似乎也找不到允许终止查询的密码查询。我是不是忽略了什么,或者这对 Neo4j 来说是不可能的?我目前使用的是 Neo4j 2.0.4,但如果 Neo4j 具有查询查杀功能,我愿意升级到更新版本。
从 Neo4j 版本 2.2.0 开始,可以通过 UI 和 REST 接口终止查询。我不知道现有的 nodejs 驱动程序是否支持此功能,但如果不支持,您仍然可以通过向 REST 接口发出 HTTP 请求来实现相同的功能。
如果您 运行 在版本 2.2.x 或更高版本的浏览器中查询,您会注意到右上角有一个 (X) close link执行和显示查询的区域的一角。
您可以通过将查询包装在事务中并回滚来获得相同的结果。事实上,我只是打开网络检查器来查看浏览器 UI 如何取消 运行ning 查询。
我认为这是推荐的方法:
- 使用您想要 运行 的 Cypher 查询开始交易。交易将被分配一个标识符,即请求
POST http://localhost:7474/db/data/transaction
和响应 Location: http://localhost:7474/db/data/transaction/7
- 如果您想取消查询,请使用您在步骤 1 中获得的标识符删除交易,即
DELETE http://localhost:7474/db/data/transaction/7
您将找到有关 Transactional Cypher HTTP 端点和示例的更多信息 in the official docs。
更新:node-neo4j 似乎支持事务处理,包括回滚。 See docs.
我正在使用 Node.js 和 Neo4j 制作一个搜索引擎应用程序,它允许用户通过基于 Web 的用户界面提交图形遍历查询。我想为用户提供在提交查询后取消查询的选项(即,如果用户决定更改查询参数)。因此,我需要一种方法来使用来自 Node.js-to-Neo4j 驱动程序的命令或通过 Cypher 查询来中止查询。
经过几个小时的搜索,我无法找到使用任何 Node.js-to-Neo4j 驱动程序执行此操作的方法。我似乎也找不到允许终止查询的密码查询。我是不是忽略了什么,或者这对 Neo4j 来说是不可能的?我目前使用的是 Neo4j 2.0.4,但如果 Neo4j 具有查询查杀功能,我愿意升级到更新版本。
从 Neo4j 版本 2.2.0 开始,可以通过 UI 和 REST 接口终止查询。我不知道现有的 nodejs 驱动程序是否支持此功能,但如果不支持,您仍然可以通过向 REST 接口发出 HTTP 请求来实现相同的功能。
如果您 运行 在版本 2.2.x 或更高版本的浏览器中查询,您会注意到右上角有一个 (X) close link执行和显示查询的区域的一角。
您可以通过将查询包装在事务中并回滚来获得相同的结果。事实上,我只是打开网络检查器来查看浏览器 UI 如何取消 运行ning 查询。
我认为这是推荐的方法:
- 使用您想要 运行 的 Cypher 查询开始交易。交易将被分配一个标识符,即请求
POST http://localhost:7474/db/data/transaction
和响应Location: http://localhost:7474/db/data/transaction/7
- 如果您想取消查询,请使用您在步骤 1 中获得的标识符删除交易,即
DELETE http://localhost:7474/db/data/transaction/7
您将找到有关 Transactional Cypher HTTP 端点和示例的更多信息 in the official docs。
更新:node-neo4j 似乎支持事务处理,包括回滚。 See docs.