我正在尝试将我的R会话中的查询发送到neo4j
查看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的内容如下
{"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"} }
到目前为止在Use neo4j with R中的SO所提供的解决方案 查询存储在querystring中(参见下面的代码)不使用能力来参数化密码查询。例如:
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 :(得分: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