我如何 return RedisGraph 中的关系?

How do I return a relation in RedisGraph?

使用 RedisGraph,我想要 RETURN 关系类型的查询。

示例查询:

MATCH (n1:Entity { id: "foo" }) MATCH (n2:Entity2 { id: "bar" }) CREATE (n1)-[r:areFriends]->(n2) RETURN *

遗憾的是,returned 值仅包括 n1n2,但不包括 r

returned 记录包含以下内容:

Record { _header: [ 'n1.id', 'n1.name', 'n2.id', 'n2.name' ] 这符合我的模式,但众所周知 r 不见了。

如何获得 RETURN 到 return 的关系?

OpenCypher 支持如下语法:

RETURN n1, n2, type(r) 但这在 RedisGraph 中似乎不起作用。

目前 RedisGraph 不支持混合使用 CREATE 和 RETURN 子句,尽管这项工作正在制作中,应该会在几天内可用。

PR 刚刚合并到 MASTER

127.0.0.1:6379> GRAPH.QUERY G "create (:Entity {id:'foo'}), (:Entity {id:'bar'})"
1) (empty list or set)
2) 1) "Labels added: 1"
   2) "Nodes created: 2"
   3) "Properties set: 2"
   4) "Query internal execution time: 0.536000 milliseconds"

127.0.0.1:6379> GRAPH.QUERY G "MATCH (n1:Entity {id:'foo'}), (n2:Entity {id:'bar'}) CREATE (n1)-[r:areFriends]->(n2) RETURN n1,n2,TYPE(r)"
1) 1) 1) "n1.id"
      2) "n2.id"
      3) "TYPE(r)"
   2) 1) "foo"
      2) "bar"
      3) "areFriends"
2) 1) "Relationships created: 1"
   2) "Query internal execution time: 0.409000 milliseconds"

请注意,此更改将成为版本 1.0.12 的一部分

在该版本发布之前,您可以从源代码构建或使用 docker 图像 redislabs/redisgraph:edge