2014-06-30 48 views
0

我正在使用Neo4j 2.0.1社区。我尝试通过REST端点发送查询来在图中插入关系。通过REST端点进行Cypher查询:未创建关系

我的关系查询很简单:

MATCH (t1:Test { name : 'TEST_1' }), (t2:Test { name : 'TEST_2' }) CREATE (t1)-[:REL_TEST]->(t2) 

我这样调用它在PowerShell中:

$postParams = "{ `"query`" : `"MATCH (t1:Test { name : {test1} }), (t2:Test { name : {test2} }) CREATE (t1)-[:REL_TEST]->(t2)`",`"params`" : { `"test1`" : `"TEST_1`", `"test2`" : `"TEST_2`" } }" 

    Invoke-WebRequest -Uri http://localhost:7474/db/data/cypher -Method POST -Body $postParams -Headers @{"Accept"="application/json; charset=UTF-8";"Content-Type"="application/json"} 

而且我得到了如下回应:

StatusCode  : 200 
    StatusDescription : OK 
    Content   : { 
          "columns" : [ ], 
          "data" : [ ] 
         } 
    RawContent  : HTTP/1.1 200 OK 
       Access-Control-Allow-Origin: * 
       Content-Length: 40 
       Content-Type: application/json; charset=UTF-8 
       Server: Jetty(9.0.z-SNAPSHOT) 

       { 
        "columns" : [ ], 
        "data" : [ ] 
       } 
    Forms    : {} 
    Headers   : {[Access-Control-Allow-Origin, *], [Content-Length, 40], [Content-Type, application/json; charset=UTF-8], [Server, Jetty(9.0.z-SNAPSHOT)]} 
    Images   : {} 
    InputFields  : {} 
    Links    : {} 
    ParsedHtml  : mshtml.HTMLDocumentClass 
    RawContentLength : 40 

但这种关系没有创建。如果我然后在浏览器用户界面中键入相同的查询,它将起作用。 我不明白我做错了什么,特别是因为查询在浏览器中工作,而REST调用过程适用于插入节点。

回答

3

你确定你的查询不起作用吗?您没有返回任何数据,因此有可能在您不知情的情况下创建它。

你可以尝试这样的事情

MATCH (t1:Test{name: {test1}}), (t2:Test{name: {test2}}) 
CREATE (t1)-[rel:REL_TEST]->(t2) 
RETURN rel 

如果你没有得到你的回应rel这意味着相对没有可能产生,因为MATCH ES的至少一个失败。尝试返回t1t2以查看它们是否按预期工作。

+0

好吧,看来我正在做一些节点类名错误:(你的建议直接用REST查询来搜索,如果我的节点可访问是非常宝贵的,非常感谢! – Unixorn

相关问题