通过REST端点进行Cypher查询:未创建关系

时间:2014-06-30 04:52:49

标签: rest neo4j cypher

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

我的关系查询非常简单:

    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

但是没有创造关系。如果我然后在浏览器UI中键入相同的查询,它的工作原理。 我不知道自己做错了什么,特别是因为查询在浏览器中有效,而REST调用过程适用于插入节点。

1 个答案:

答案 0 :(得分:3)

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

你可以试试这样的事情

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

如果您的回复中没有rel,则意味着可能因为至少有一个MATCH失败而无法创建rel。尝试返回t1t2,看看它们是否按预期工作。