我有一个节点列表,代表用户形成的事件历史,以下模式:
()-[:s]->()-[:s]->()
等等
列表的每个节点都属于一个用户(通过关系连接)。
我正在尝试创建单个用户历史记录(在为特定用户发生的所有事件之间添加 :succeeds_for_user 关系,以便每个事件只有一个连续事件)。
我试图做这样的事情来提取应该存在关系的节点:
start u = node:class(_class = "User")
match p = shortestPath(n-[:s*..]->m), n-[:belongs_to]-u-[:belongs_to]-m
where n <> m
with n, MIN(length(p)) as l
match p = n-[:s*1..]->m
where length(p) = l
return n._id, m._id, extract(x IN nodes(p): x._id)
但它非常缓慢。
有谁知道更好的方法吗?