ユーザーが形成するイベントの履歴を表すノードのリストがあり、次のパターンがあります。
()-[:s]->()-[:s]->()
等々
リストの各ノードはユーザーに属します (関係を介して接続されます)。
個々のユーザー履歴を作成しようとしています (特定のユーザーに対して発生したすべてのイベント間に :succeeds_for_user 関係を追加し、各イベントに連続するイベントが 1 つだけになるようにします)。
関係にあるはずのノードを抽出するために、次のようなことをしようとしていました:
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)
しかし、それは痛いほど遅いです。
誰かがそれを行うためのより良い方法を知っていますか?