这个问题与在 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。
我们已经有一段时间试图理解/修复它,但在这个阶段,任何帮助都将不胜感激。
在此先感谢您的时间。