2015-04-14 28 views
1

我正在使用Node.js和Neo4j製作搜索引擎應用程序,允許用戶通過基於Web的用戶界面提交圖形遍歷查詢。我想讓用戶在提交後(即如果用戶決定更改查詢參數)取消查詢。因此,我需要一種方法來使用來自Node.js-to-Neo4j驅動程序的命令或通過Cypher查詢中止查詢。如何使用Neo4j驅動程序按需中止查詢

經過幾個小時的搜索後,我無法找到一種方法來使用任何Node.js-to-Neo4j驅動程序來執行此操作。我似乎也無法找到允許查詢查殺的密碼查詢。我是否忽略了某些東西,或者Neo4j不可能這樣做?我目前使用Neo4j 2.0.4,但如果它具有查詢查殺功能,我願意升級到Neo4j的新版本。

回答

4

從Neo4j 2.2.0版開始,可以從UI和通過REST接口中終止查詢。我不知道現有的nodejs驅動程序是否支持此功能,但是如果不支持,您仍然可以通過向REST接口發出HTTP請求來實現相同的功能。

如果您在2.2.x或更高版本的瀏覽器中運行查詢,您會注意到在執行和顯示查詢的區域的右上角有一個(X)關閉鏈接。

通過將查詢包裝到事務中並將其回滾,可以獲得相同的結果。實際上,我只是打開網絡檢查器,看看瀏覽器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端點的信息和示例in the official docs

更新:node-neo4j似乎支持事務處理,包括回滾。 See docs

+0

將使用包裝查詢在事務中使用neo4j的2.0.x版本工作的方法,還是這是2.2.x的新功能? –

+0

AFAIK它不會。可以開始,提交和回滾事務,但我不認爲有可能取消查詢執行。 – albertoperdomo

+0

好吧,看起來我會將我的Neo4j實例升級到2.2.x。謝謝! –

相關問題