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