如何在Redis图中存储分层数据并从中检索出子树?

时间:2019-03-07 09:51:44

标签: redis cypher redisgraph

id |名称| parent_id

ab |文件de

ad |歌曲| de

bc |鲍勃| ad

mn | open.txt |公元前

2 个答案:

答案 0 :(得分:1)

假设 abfile的ID,bcfile的父ID 然后可以使用bulk-insert utility

进行存储

或者您可以使用以下Cypher查询:

CREATE (A {id:'ab', name: 'file'}), (B {id:'bc', name: 'folder'}), (A)-[:child]->(B)

要进行查询,根据您要提取的数据,请使用类似于以下内容的Cypher查询:

MATCH (c)-[:child]->(p) RETURN c,p

答案 1 :(得分:0)

对于您正在运行的查询类型,我认为最好保持反向边缘[:parent]并按如下方式修改查询:

GRAPH.QUERY Makinga "MATCH (r:Resource{Id:'6e3f67da-43ed-11e9-b149-d3f886f8337c'})-[:parent*1..]->(b:Resource) RETURN count(b) as count"

这与RedisGraph描述连接和应用过滤器的方式有关。