此问题与Creating nodes in RNeo4j有关。
我也在Nicole White的github appendCypher error发布了这个问题。在stackoverflow上发布这个问题的两个原因是1)包括的创建者Nicole White以外的人可能知道这个问题的解决方案。 2)也许这里有更多的RNeo4j用户。
我基本上使用的是Transactional Endpoint详细说明的相同代码:
graph = startGraph("http://localhost:7474/db/data/", username = "neo4j", password= "mypassword")
clear(graph)
data = data.frame(Origin = c("SFO", "AUS", "MCI"),
FlightNum = c(1, 2, 3),
Destination = c("PDX", "MCI", "LGA"))
query = "
MERGE (origin:Airport {name:{origin_name}})
MERGE (destination:Airport {name:{dest_name}})
CREATE (origin)<-[:ORIGIN]-(:Flight {number:{flight_num}})-[:DESTINATION]->(destination)
"
t = newTransaction(graph)
for (i in 1:nrow(data)) {
origin_name = data[i, ]$Origin
dest_name = data[i, ]$Dest
flight_num = data[i, ]$FlightNum
appendCypher(t,
query,
origin_name = origin_name,
dest_name = dest_name,
flight_num = flight_num)
}
commit(t)
cypher(graph, "MATCH (o:Airport)<-[:ORIGIN]-(f:Flight)-[:DESTINATION]->(d:Airport)
RETURN o.name, f.number, d.name")
然而,当我到达appendCypher
函数时,我收到错误:
{
"errors" : [ {
"code" : "Neo.ClientError.Security.AuthorizationFailed",
"message" : "No authorization header supplied."
} ]
}
我不明白,因为我在创建graph
对象时已经确定了自己。请注意,函数username
中的参数password
和startGraph
未包含在原始代码中,但如果我在调用startGraph
时未指定这些参数,则会出现相同的错误消息(即"Error: 401 Unauthorized"...
)在该阶段。
我被告知这可能与新的neo4j版本2.2.1(?)有关。
我将从R数据表上传数据到neo4j数据库,因此我需要appendCypher
才能使其正常运行。我想最终的选择是转移到python(py2neo),办公室里的同事们正在使用它,没有任何问题。但我的所有代码都在R中,所以我真的想使用RNeo4j。
我们已经有一段时间试图理解/修复它,但在这个阶段,任何帮助都将非常感激。
提前感谢您的时间。