2014-04-14 4 views
1

Пробовал подключить к neo4j из Rзапрос R от Neo4j

Ран это:

install.packages('RCurl') 
install.packages('RJSONIO') 
library('bitops') 
library('RCurl') 
library('RJSONIO') 
query <- function(querystring) { 
    h = basicTextGatherer() 
    curlPerform(url="http://localhost:7474/db/data/ext/CypherPlugin/graphdb/execute_query", 
      postfields=paste('query',curlEscape(querystring), sep='='), 
      writefunction = h$update, 
      verbose = FALSE 
) 

    result <- fromJSON(h$value()) 

    data <- data.frame(t(sapply(result$data, unlist))) 
    names(data) <- result.json$columns 
    data 
} 

Тогда я бегу:

q<-"MATCH (p:Person) RETURN p.name" 
data<-query(q) 

Но он дает ошибку:

Error in query(q) : object 'result.json' not found 

Я обновил студию R до 0.98.501 и R находится в R-3.1.0-snowleopard.pkg. Почему я получаю эту ошибку? Благодаря!

+0

Убедитесь, что вы используете заголовок 'Content-type' и' accept' для 'application/json'. Если это не поможет, попробуйте подключиться к прокси-серверу, например, charlesproxy между neo4j и клиентом R, чтобы узнать, что происходит с проводом. –

ответ

1

Получил эту работу с вилкой Марк Нидхэме

library('RCurl') 
library('RJSONIO') 

query <- function(querystring) { 
h = basicTextGatherer() 
curlPerform(url="http://localhost:7474/db/data/cypher", 
      postfields=paste('query',curlEscape(querystring), sep='='), 
      writefunction = h$update, 
      verbose = FALSE 
) 

result <- fromJSON(h$value()) 

data <- data.frame(t(sapply(result$data, unlist))) 
names(data) <- result$columns 

data 

}

Тогда просто побежал:

data <- query("START n = node(*) RETURN COUNT(n) AS count") 

работал отлично

0

Ваш запрос имеет четкую ошибку:

MATCH (p:Person) RETURN a.name 

Вы сопрягать узел под названием «р», и возвращает свойство имени на узле с именем «а».

Попробуйте вместо этого:

MATCH (p:Person) RETURN p.name 
+0

извините была опечатка с моей стороны. Ошибка все еще происходит. – Badmiral

Смежные вопросы