2014-01-14 27 views
0

我想從我的R對話發送到查詢的Neo4j通過RCurl來自R解析向量成暗號查詢用的Neo4j的REST API

望着通過的Neo4j提供的REST API文檔:http://docs.neo4j.org/chunked/milestone/rest-api-cypher.html我已經制定了一個成功的下面

curl -X POST -d @test.json http://localhost:7474/db/data/cypher -H "Content-Type: application/json" 

捲曲查詢哪裏test.json的內容如下在Use neo4j with R其中給出到目前爲止上SO

{"query": "start pathway=node:pathwayid(pathway={pathway}) match pathway--(ko:`ko`)<-[r]-(cpd:`cpd`) return ko.ko,r,cpd.cpd limit 5;","params": {"pathway":"path:ko00010"} } 

解 查詢存儲在查詢字符串中(請參閱下面的代碼)不利用對密碼查詢進行參數化的功能。例如:

library(RCurl) 
library(RJSONIO) 

h = basicTextGatherer() 

    curlPerform(url="localhost:7474/db/data/ext/CypherPlugin/graphdb/execute_query", 
postfields=paste('query',curlEscape(querystring), sep='='), 
writefunction = h$update, 
verbose = FALSE 
)   
result <- fromJSON(h$value()) 
在這種情況下,查詢字符串

是:

start pathway=node:pathwayid('pathway:"path:ko00010"') match pathway--(ko:`ko`)<-[r]-(cpd:`cpd`) return ko.ko,r,cpd.cpd limit 5; 

我很好奇我怎麼解析參數到RCurl。

+0

我猜我不得不改變將R代碼'postfields =膏( '查詢',curlEscape的這部分( querystring),sep ='=')' – altimit

回答

0

用這個代替

fromJSON(
getURL("http://localhost:7474/db/data/cypher", 
    customrequest='POST', 
    httpheader=c('Content- Type'='application/json'), 
    postfields=toJSON(list(query=q2,params=list(pathway=q3))) 
) 
) 

代碼修改: http://pastebin.com/FAeJ0b2R