Redis图:搜索具有模式属性的n个连续节点?

问题描述

在python代码中,我得到了节点f的uid的列表。 [1,2,3]。

我想建立一个查询来查找连续连接的节点并返回父节点。

因此,在这种情况下,查询将如下所示:

  match (n0)-->(n1)-->(n2)-->(n3) 
  where n1.uid % 100 = 1 % 100 and n2.uid % 100 = 2 % 100 and n3.uid % 100 = 3 % 100
  return n0 

如您所见,如果我使用较长的列表,则扩展性不是很好。 [5,3,104,202,....] 该查询将大量增长。

是否可以使用快捷方式来处理不同大小的列表。请记住,节点的顺序必须与数据列表匹配。

解决方法

您可能要考虑从用户输入列表动态构建查询。

q = "MATCH (n0 {uid:list[0]})"
for id in list[1:]:
    q += "-->({uid:%d})" % id
q += " RETURN n0"

注释代码未经测试!