使用NEO4J的REST API通过RCurl将R中的向量解析为cypher查询

时间:2014-01-14 11:16:39

标签: r rest curl neo4j

我正在尝试将我的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。

1 个答案:

答案 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