0

这个问题与在 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对象时已经确定了自己。请注意,参数usernamepassword函数startGraph内不包含在原始代码中,但如果我在调用时没有指定这些,我会在那个阶段startGraph收到相同的错误消息(即)。"Error: 401 Unauthorized"...

有人告诉我这可能与新的 neo4j 版本 2.2.1(?)有关。

我将从 R 数据表中将数据上传到 neo4j 数据库,因此我确实需要appendCypher使其正常工作。我想最终的选择是迁移到 python (py2neo),我在办公室的同事使用它完全没有问题。但是我所有的代码都在 R 中,所以我真的很想使用 RNeo4j。

我们已经有一段时间试图理解/修复它,但在这个阶段,任何帮助都将不胜感激。

在此先感谢您的时间。

4

0 回答 0